我开发了简单的应用程序来测试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调用。我做错了什么?
答案 0 :(得分:0)
你的cacheName是错误的。 你写的
@Cacheable(value="test",key="#id")
public String getProductName(final String id) {
with cacheName“test” 但是在您的配置中,您没有名为“test”的缓存