簡體   English   中英

Pojo getter的春季緩存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM