SSH:通过EhCache来实现Hibernate的二级缓存

1、SSH的版本

 
 
  • Struts2版本:2.3.16.1 
  • Spring版本:3.2.5.RELEASE
  • Hibernate版本:4.2.0.Final

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 {
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值