1.首先去官方下载spring jar包,我用的是sring 4.1.6已经集成了ehcache。
2.写spring配置文件,注意需要添加 cache约束文件。
xmlns:cache="http://www.springframework.org/schema/cache"
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd
3.在spring配置文件中配置ehcache缓存管理器:
<!-- 缺省使用下面cachemanager -->
<cache:annotation-driven/> ---开启cache扫描
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"></property>
</bean>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="cacheManagerFactory"></property>
</bean>
<bean id="test" class="test.cn.test"></bean>
4.配置ehcache.xml,上面的路径写的是该文件保存在src下。
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- 默认缓存 -->
<defaultCache
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"/>
<!-- 菜单缓存 -->
<cache name="menuCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
5.配置web.xml这里就不说了,用spring监听器加载spring.xml文件就可以。(spring基础)。
6.配置成功就可以测试了。
@Cacheable(value="menuCache",key="#id") --添加缓存
public int query(int id){
System.out.println("query");
return id;
}
@Cacheable(value="menuCache",key="#str")
public String querystr(String str){
System.out.println("querystr");
return "123";
}
@CacheEvict(value="menuCache") ---删除缓存
public void update(){
System.out.println("update");
}
可以发现每次调用query()的时候再次调用就不会打印query了。说明缓存成功,当做修改的时候调用CacheEvict,将缓存清空。