spring hibernate struts 整合开发(5) - Hibernate二级缓存

[url="http://czj4451.iteye.com/blog/1526897"]一. spring hibernate struts 整合开发(1) - 搭建环境[/url]
[url="http://czj4451.iteye.com/blog/1528634"]二. spring hibernate struts 整合开发(2) - Spring集成的Hibernate编码和测试[/url]
[url="http://czj4451.iteye.com/blog/1533134"]三. spring hibernate struts 整合开发(3) - Struts集成Spring[/url]
[url="http://czj4451.iteye.com/blog/1535063"]四. spring hibernate struts 整合开发(4) - Struts与Spring集成2[/url]
五. spring hibernate struts 整合开发(5) - Hibernate二级缓存
[url="http://czj4451.iteye.com/blog/1535279"]六. spring hibernate struts 整合开发(6) - 额外功能[/url]


[size=small]1. 启用Hibernate二级缓存[/size]

在beans.xml的sessionFactory节点中,加入:


<bean id="sessionFactory" ...>
...
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=false
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
</bean>


[size=small]2. EhCache配置文件[/size]

在类路径下新建Ehcache配置文件ehcache.xml


<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache maxElementsInMemory="1000" eternal="false" overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="180"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="60"/>
<cache name="com.john.bean.Person" maxElementsInMemory="100" eternal="false"
overflowToDisk="true" timeToIdleSeconds="300" timeToLiveSeconds="600" diskPersistent="false"/>
</ehcache>


[size=small]3. 映射文件缓存支持[/size]

在Person.hbm.xml中加入:


<class name="Person" ...>
<cache usage="read-write" region="com.john.bean.Person"/>
</class>


[size=small]4. 测试缓存[/size]

修改测试类personServiceTest的testGetPerson()方法:


Person person = personService.getPerson(2);
System.out.println(person.getName());
Thread.sleep(10000);
Person person = personService.getPerson(2);
System.out.println(person.getName());


在线程睡眠的时候,关掉数据库,测试是否还能拿到数据。

Note:
a. 如果ehcache版本在1.41以上,必须添加backport-util-concurrent.jar包,否则会报NoClassDefFoundError异常

b. 测试缓存时,PersonServiceBean的getPerson方法必须是不支持事务的,否则还是会连接数据库

整理自:传智播客spring教程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值