今天在项目中应用了Hibernate的二级缓存,现在将其应用过程做一个简单的总结:
一、关于Hibernate中的缓存:
Hibernate的一级缓存是Session级别的缓存,是事务管理范围的缓存,直接由Hibernate管理。当一个session做了一个查询操作,那么就会把查询的结果放在一级缓存中,只要同一个session在短时间内再做同一个查询操作,无需再次连接数据库,直接从一级缓存中取出数据。一级缓存的物理介质是内存,由于内存存储的数据有限,所以可以使用session 的evit()方法来显示的清空缓存中特定的对象。
二:Hibernate二级缓存的配置(以Ehcache这个缓存插件为例)
Hibernate 的二级缓存是SessionFactory级别的缓存,属于进程或集群范围的缓存,这一级别的缓存可以通过配置来实现。项目中使用了Ehcache这个缓存插件。下面是这个插件的一个使用:
1、首先需要导入第三方Jar包ehcache-1.5.0.jar,依赖于这两个包backport-util-concurrent 和 commons-logging。
2、在hibernate.cfg.xml文件中开启二级缓存一级配置二级缓存技术提供商
3、配置类级别的二级缓存:
<class-cache usage="read-write" class="xxx"/>(xxx这里写类的全名)
4、在src目录下添加ehcache.xml配置文件:
配置文件信息如下可以复制ehcache-1.5.0.jar包下的这个文件里面的信息,信息如下:
将eternal设置为true,将数据缓存为永久性。
5、测试
查看控制台打印的select语句信息,即可判断二级缓存是否成功。
此篇文章属于自己的一点小总结,不好的地方很多,只能再接再厉,希望以后写得越来越好。