Spiring @Cacheable无法正常工作

时间:2016-08-24 00:07:06

标签: spring caching

我在Spring applicationcontext.xml中添加了<cache:annotation-driven />

还添加了

<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
        <property name="caches">
            <set><bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"
name="executeCachedMethod" />
</set></property></bean>

在使用JdbcTemplate进行数据库调用的方法之前添加了@Cacheable。

每当我使用相同的参数方法调用该方法时,总是执行并转到数据库。它应该让我得到一个缓存的结果。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

实际上我在启动期间在spring bean中使用它。通过Spring实现@cacheable仅在cacheInterceptor.afterSingletonsInstantiated()调用之后才能工作。就我而言,我之前就是在使用它。

所以只是为了测试

@Autowired
CacheInterceptor cacheInterceptor;

只是为了在加载时测试缓存,如果我们有意(不推荐)进行此调用cacheInterceptor.afterSingletonsInstantiated(),缓存将起作用。