Hibernate二级级缓存
上篇介绍了Hibernate一级缓存,主要是session缓存,session生命周期结束,缓存也就结束。二级缓存相对于一级缓存来说是一个范围更广阔一些,就比你住的地方周围有多个小卖铺(session缓存),和一个大型超市,原料加工厂送货的时候送小卖铺一份的同时,必然送一份到超市。而给第二个小卖铺送一份的同时,也送给超市一份,这个超市就是我们的SessionFactory。hibernate二缓存的又称为“SessionFactory的缓存”缓存的生命周期和SessionFactory(线程安全,一个数据库对应一个,重量级)的生命周期一致,所以SessionFactory可以管理二级缓存。
下面来看session控制的二级缓存。
二级缓存配置
1、 需要引入第三方的jar包,hibernate的Cglib.jar。
2、 在缓存的配置文件来控制缓存,我们可以拷贝hibernate已有项目中的ehcache.xml配置文件到自己的项目中。通过这个文件,我们可以对二级缓存进行设置,例如缓存的时间,缓存的代销,缓存间隔多长时间自动被清掉,缓存超时间直接缓存到磁盘指定的位置上等设置。
3、 在hibernate.cfg.xml文件中加入缓存产品提供商。 <propertyname="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
4、 启用二级缓存,设置为true