spring simplecachemanager没有在方法调用上工作

时间:2016-04-07 14:37:42

标签: spring spring-mvc

我开发了简单的应用程序来测试spring缓存抽象。这个应用程序使用SimpleCacheManager在地图中存储数据。调用从MVC控制器到服务到dao。服务类方法使用@Cacheble(" test")进行注释,并且是一个带有一个String类型参数的公共方法,并返回string。现在我们需要通过传递给此服务类方法的参数来缓存这些值。

这是缓存配置

<cache:annotation-driven cache-manager="cacheManager" />
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
    <property name="caches">
        <set>
            <bean
              class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"
              name="test"/>
        </set>
    </property>
</bean>

方法注释看起来像这样

@Cacheable(value="test",key="#id")
public String getProductName(final String id) {

不知怎的,它总是在进行db调用。我做错了什么?

1 个答案:

答案 0 :(得分:0)

你的cacheName是错误的。 你写的

@Cacheable(value="test",key="#id")
public String getProductName(final String id) {

with cacheName“test” 但是在您的配置中,您没有名为“test”的缓存