Spring 3.2 + Guava:从缓存管理器获取Guava缓存

时间:2016-04-04 08:29:20

标签: java spring caching google-guava-cache

尝试从缓存管理器恢复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缓存,我会收到错误。

这可能吗?或者我做错了什么?

0 个答案:

没有答案