我开发了简单的应用程序来测试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调用。我做错了什么?
发布于 2016-04-07 22:54:22
你的cacheName错了。你写
@Cacheable(value="test",key="#id")
public String getProductName(final String id) {使用cacheName“测试”,但在您的配置中没有名为“测试”的缓存。
https://stackoverflow.com/questions/36479466
复制相似问题