[英]Spring caching of pojo getters
我正在使用一個拍賣系統,其中必須每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
}}
您是否已將@EnableCaching添加到Spring Boot應用程序配置中? 像這兒:
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我應該工作。 您在課堂上有什么注釋? 例如, @Async
@Cacheable
可以與@Async
沖突。
另外,它需要從外部調用。 您不能執行this.getCurrentPrice()
。 它不會通過代理進行緩存。
@Cacheable旨在在Spring托管bean上工作。 它將在您自己實例化的類上工作。
在第一個方法調用之后,將價格計算移至一個單獨的組件,以使其可緩存或存儲計算值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.