1、SSH的版本
2、在Maven的pom.xml中加入对hibernate-ehcache的依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.0.Final</version>
</dependency>
3、在Spring的配置文件中增加Hibernate对EhCache的相关配置
<!--Set Hibernate properties-->
<property name="hibernateProperties">
<props>
<!--启用二级缓存-->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache-config.xml</prop>
</props>
</property>
4、在classes目录下新增EhCache的配置文件(ehcache-config.xml)
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<!--maxElementsInMemory:最多缓存多少个对象
eternal:内存中的对象是否永远不变
timeToIdleSeconds:当缓存闲置n秒后销毁
timeToLiveSeconds:当缓存存活n秒后销毁
overflowToDisk:内存泄漏时是否保存到磁盘
memoryStoreEvictionPolicy:内存不足时的数据对象的清楚策略
-->
<defaultCache maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="false" memoryStoreEvictionPolicy="LRU"/>
<cache name="org.hibernate.cache.internal.StandardQueryCache" maxElementsInMemory="5" eternal="false" timeToLiveSeconds="120"/>
<cache name="org.hibernate.cache.spi.UpdateTimestampsCache" maxElementsInMemory="5000" eternal="true"/>
</ehcache>
5、对要实现二级缓存的领域模型(Model)上实现Cache的Annotation
@Entity
@Cache(usage= CacheConcurrencyStrategy.READ_ONLY)
public class User {
}