春天缓存pojo getters

时间:2018-05-09 14:14:14

标签: java spring spring-mvc ehcache

我正在开发一种拍卖系统,每隔n分钟就必须重新计算产品的价格。 我已经在我的控制器和服务级别上成功实现了带有spring boot的ehcache,现在我要缓存一些模型超类getter但是@Cacheable不能使用getCurrentPrice()方法(我也试过指定缓存名称和密钥) 。 也许Spring缓存不是为这个目的而设计的?我必须为getPrice()手动管理缓存,使用自定义缓存,或者我做错了什么?

public abstract class PricedEntity{

public abstract void getInfo();

@Cacheable
public Price getCurrentPrice(){}
//...my code here...long task computation(about 0.3 seconds) 
//the price is variable every 5/10 minutes due to bid/ask and USD/EUR change value

} }

2 个答案:

答案 0 :(得分:0)

您是否已将@EnableCaching添加到Spring Boot应用程序配置中?像这里:

@SpringBootApplication
@EnableCaching
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

答案 1 :(得分:0)

@Cacheable适用于Spring托管bean。它将适用于您自己实例化的类。

将价格计算移至单独的组件,并在第一次方法调用后使其可缓存或记忆计算值。