0
我已經使用了@Cachable@cachable問題 - 方法不緩存
@Cacheable(value="airport", key="#filter")
public static String getAirport(String filter, SessionFactory sessionFactory){
String airportsDisplay = "";
Session session = sessionFactory.openSession();
airportsDisplay = (String) session.createQuery("select iata from Airports a where a.displaystr = :accfilter").setString("accfilter", filter.toUpperCase()).uniqueResult();
session.close();
return airportsDisplay;
}
它所做的是一個數據庫查詢與給定的過濾器和返回機場名稱的方法。
的XML configuratin是
<cache name="airport"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="1200"
timeToLiveSeconds="1200"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="1200"
memoryStoreEvictionPolicy="LRU"/>
的問題是,它不緩存的結果!
部署時airport.data被正常創建,但無論從我的web應用程序調用方法多少次都始終爲空。
Anny的建議?
因此,如果我刪除靜態關鍵字和註釋類@Service它將工作? –
是的,如果您將此服務的實例注入調用的Spring bean(或使用bean工廠獲取對該服務的引用),它將起作用。當然,你也需要配置緩存。 –
它做到了!謝了哥們! –