在项目中,有些数据几乎不会改变,作为共享数据来使用的时候,它们就是二级缓存。
Hibernate并没有提供二级缓存的解决方案。但是市面上有解决二级缓存的第三方组件,如:EhCache、OsCache、JbossCache、MomeryCache等。
特性: 1.修改不能特别频繁。
2.数据可以公开。
二级缓存在SessionFactory中,因为SessionFactory是线程安全的,所以二级缓存也是线程安全的。
二级缓存的生活周期和SessionFactory一样。
怎么样把数据放入二级缓存?
怎么样把数据从二级缓存中提取出来?
Hibernate默认二级缓存是关闭的。所以需要在
1.hibernate.cfg.xml中配置二级缓存。5.0这么配置不对
- 在Mapping文件中配置。注意<cache>的位置必须在<id>之前
session.get方法的作用:1.把一个对象变成持久化状态的对象。2.把该对象存放到session的一级缓存中。3.把该对象存入sessionFactory的二级缓存中。
session.clear方法清除一级和二级缓存。
session.save方法特殊,它只放入一级缓存,不放入二级缓存。
session.flush会把数据放入二级缓存中。
session.get、session.load、session.update都放入二级缓存。
session.get和load方法都可以从二级缓存获取数据。
二级缓存非常危险,线程不安全,所以一般公司都设置成read-only,只把常量放里面。
来源:CSDN
作者:爱妮三千遍
链接:https://blog.csdn.net/ketouch/article/details/104221138