尝试从缓存管理器恢复Guava缓存时遇到问题,而是获得Spring Cache。
这是我的SpringConfig文件中的bean:
@Bean
public CacheManager cacheManager() {
ConcurrentMapCacheManager cacheManager = new ConcurrentMapCacheManager() {
@Override
protected Cache createConcurrentMapCache(final String name) {
return new ConcurrentMapCache(name, CacheBuilder.newBuilder().expireAfterWrite(1440, TimeUnit.MINUTES)
.maximumSize(100).recordStats().build().asMap(), false); }
};
return cacheManager;
}
然后我就可以使用@Cacheable:
@Cacheable(value = "myCache")
public void myCacheMethod(String key){
// call a web service
}
一切正常,但我无法获取CacheBuilder创建的缓存Guava对象以调用stats()方法。
这就是我获取缓存的方式:
Cache myCache = cacheManager.getCache("myCache");
ValueWrapper wrapper = myCache.get("key");
WebServiceType myCachedObject= (WebServiceType) wrapper.get();
最后一个缓存是Spring缓存,如果我将它转换为Guava缓存,我会收到错误。
这可能吗?或者我做错了什么?