spring hibernate struts 整合开发(5) - Hibernate二级缓存
一.springhibernatestruts整合开发(1)-搭建环境
二.springhibernatestruts整合开发(2)-Spring集成的Hibernate编码和测试
三.springhibernatestruts整合开发(3)-Struts集成Spring
四.springhibernatestruts整合开发(4)-Struts与Spring集成2
五.springhibernatestruts整合开发(5)-Hibernate二级缓存
六.springhibernatestruts整合开发(6)-额外功能
1.启用Hibernate二级缓存
在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>
2.EhCache配置文件
在类路径下新建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>
3.映射文件缓存支持
在Person.hbm.xml中加入:
<class name="Person" ...> <cache usage="read-write" region="com.john.bean.Person"/> </class>
4.测试缓存
修改测试类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教程
相关推荐
微微撒 2020-04-18
gwn00 2020-01-14
dongxurr 2020-07-26
无情的你无情的雨 2020-07-18
jimgreatly 2020-06-03
cnflat0 2020-04-25
技术驱动人生 2020-04-08
Justagreenonion 2020-03-27
zhiyuan0 2020-02-24
云之飞踢 2020-01-28
明月清风精进不止 2020-01-07
Justagreenonion 2020-01-05
manbucy 2014-05-20
javamagicsun 2019-12-17
栖梧桐 2019-12-13
javamagicsun 2019-12-04
GechangLiu 2016-11-23
flydoging 2019-11-05
Ashes 2019-11-05