一、定義:
二級緩存是進程或集群范圍內的緩存,可以被所有的Session共享,是可配置的插件
二、二級緩存原理圖
?
解析:每次從二級緩存中取出的對象,都是一個新的對象。
?
三、配置步驟如下:
同理:以員工類和部門類為例
① 引入jar包
?
② 關鍵點:
大配置Hibernate.cfg.xml開啟二級緩存
③?在src下添加ehcache.xml文件,從etc獲取文件即可。
④測試二級緩存(數據散裝的特點)
public class Test1 {Session session;Transaction tx; Session session2;Transaction tx2;@Afterpublic void afterTest(){tx.commit();HibernateUtil.CloseSession();}@Beforepublic void initData(){session=HibernateUtil.getSession();tx=session.beginTransaction();}/** 二級緩存*/@Testpublic void twoTest(){session=HibernateUtil.getSession();tx=session.beginTransaction();Emp emp=(Emp)session.get(Emp.class, 2);System.out.println(emp);tx.commit();System.out.println("========================");Emp emp2=(Emp)session.get(Emp.class, 2);System.out.println(emp2);System.out.println("========================");session2=HibernateUtil.getSession();tx2=session2.beginTransaction();Emp emp3=(Emp)session2.get(Emp.class, 2);System.out.println(emp3);tx2.commit();System.out.println("=========================");}
輸出結果如下:
?
注:一級緩存保存的是內存對象的引用,二級緩存中數據散裝,需重新封裝新的對象,所以兩個內存地址不同