SpringMVC的CacheManager配置

Spring 3.1 后提供一个新特性 基于注释驱动的缓存
可以通过在方法上加入注解,从而缓存该方法返回的数据

更多精彩

  • 更多技术博客,请移步 asing1elife’s blog

编写配置文件


<cache:annotation-driven/>


<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">

<property name="caches">
<set>

<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="default"/>

<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="dictionaryCache"/>
set>
property>
bean>

在需要缓存的方法上加缓存注释,并指定自定义名称

@Cacheable(value = "dictionaryCache")
public List<DictionaryDTO> getDictionaries(String className) {
return dictionaryDao.getDictionaries(className);
}

清空缓存

  • allEntries = true 表示清空所有缓存
  • key = "#dictionary.getName()" 表示只清空方法参数中带有指定key的缓存
@CacheEvict(value = "departmentService", allEntries = true)
public ResponseData removeDictionary(Long id) {
...
}

@CacheEvict(value = "departmentService", key = "#dictionary.getName()")
public void addDictionary(DictionaryDTO dictionary) {
...
}

你可能感兴趣的:(SpringMVC的CacheManager配置)