手机版

关于在Spring集成Hibernate时启用L2缓存实例的详细说明

时间:2021-09-06 来源:互联网 编辑:宝哥软件园 浏览:

Spring集成Hibernate时启用L2缓存实例的详细说明

写在前面:

1.这个例子使用了hibernate3spring32.本例中的查询使用了HibernateTemplate;

1.导入ehcache-x.x.x.jar包;

2.在applicationContext.xml文件中找到sessionFactory的相应配置信息,并在设置hibernateProperties时添加以下代码:

!-配置为使用查询缓存-prop key=' hibernate . cache . use _ query _ cache ' true/prop!-配置并启用L2缓存-prop key=' hibernate . cache . use _ second _ level _ cache ' true/prop!-配置L2缓存的提供程序-prop key=' hibernate . cache . provider _ class ' org.hibernate.cache.ehcacheprovider/prop

3.由于查询中使用了hibernateTemplate,在hibernateTemplate中进行相应的配置,找到hibernateTemplate的配置项,添加如下代码:

!-使用查询缓存-属性名称=“缓存查询”值true/值/属性

4.向要缓存的实体类添加以下注释:

@ cache(usage=cacheoncurrcencrystrategy。read _ write)注意:

用法可以有以下值:

CacheConcurrencyStrategy。无:不使用缓存,默认;缓存当前策略。Read _ only:只读模式,如果缓存数据被修改,将引发异常;缓存当前策略。Nonstrict _ read _ write:读写方式不严格,缓存的数据不会被锁定;Cacheoncurrencystrategy。read _ write:读写模式。更新缓存时,缓存中的数据将被替换为锁。如果其他事务得到对应的缓存数据,发现被锁定,会直接去数据库查询;事务:事务模式,支持事务。当事务回滚时,缓存中的数据也会回滚,只支持JPA。5.配置ehcache.xml文件:

ehcache!-指定一个文件目录,当EHCache将数据写入硬盘时,会将数据写入这个目录-diskstorepath=' Java . io . tmpdir '/!- name设置缓存的名称,其值为类的完整名称或类集合的名称;MaxElementsInMemory设置基于内存的缓存中可以存储的最大对象数。如果永恒是真的,那就意味着物体永远不会过期。此时将忽略时间毫秒和时间毫秒,默认值为假;TimeToIdleSeconds设置对象空闲的最长时间,以秒为单位;TimeToLiveSeconds设置允许对象在缓存中存在的最长时间,以秒为单位;OverflowToDisk如果为true,则表示当基于内存的缓存中的对象数量达到maxElementsInMemory限制时,溢出的对象将被写入基于硬盘的缓存;- !-设置缓存的默认数据过期策略-默认缓存maxelementsinmemory=' 1000 '永恒=' false ' time todisks=' 1200 ' time tolieveseconds=' 1200 '溢出磁盘=' false'/!-设置二级缓存的具体数据过期策略-缓存名称=' com . shaweern . model . user ' maxelementsinmemory=' 1000 '永恒=' false ' time topics秒=' 3000 ' time topics秒=' 3000 '溢出磁盘=' false '/ehcache感谢阅读,希望对大家有所帮助,感谢大家对本网站的支持!

版权声明:关于在Spring集成Hibernate时启用L2缓存实例的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。