最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring 整合 Hibernate 時啟用二級緩存實例詳解

 更新時間:2017年02月15日 14:08:07   投稿:lqh  
這篇文章主要介紹了Spring 整合 Hibernate 時啟用二級緩存實例詳解的相關(guān)資料,需要的朋友可以參考下

Spring 整合 Hibernate 時啟用二級緩存實例詳解

寫在前面:

  1. 本例使用 Hibernate3 + Spring3;
  2. 本例的查詢使用了 HibernateTemplate;

1. 導(dǎo)入 ehcache-x.x.x.jar 包;

2. 在 applicationContext.xml 文件中找到 sessionFactory 相應(yīng)的配置信息并在設(shè)置 hibernateProperties 中添加如下代碼:

<!-- 配置使用查詢緩存 --> 
<prop key="hibernate.cache.use_query_cache">true</prop> 
<!-- 配置啟用二級緩存 --> 
<prop key="hibernate.cache.use_second_level_cache">true</prop> 
<!-- 配置二級緩存的提供商 --> 
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> 



3. 由于查詢使用了 hibernateTemplate,所以還要在 hibernateTemplate 中做相應(yīng)配置,找到 hibernateTemplate 的配置項,添加如下代碼:

<!-- 使用查詢緩存 --> 
<property name="cacheQueries"> 
  <value>true</value> 
</property> 


4. 在要緩存的實體類中加入如下注解:

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 

注:

  usage 可以有以下幾個取值:

  • CacheConcurrencyStrategy.NONE:不使用緩存,默認(rèn);
  • CacheConcurrencyStrategy.READ_ONLY:只讀模式,若對緩存的數(shù)據(jù)進(jìn)行修改操作會拋出異常;
  • CacheConcurrencyStrategy.NONSTRICT_READ_WRITE:不嚴(yán)格的讀寫模式,不會對緩存的數(shù)據(jù)加鎖;
  • CacheConcurrencyStrategy.READ_WRITE:讀寫模式,在更新緩存的時候會把緩存里面的數(shù)據(jù)換成一個鎖,其它事務(wù)如果去取相應(yīng)的緩存數(shù)據(jù),發(fā)現(xiàn)被鎖了,直接就去數(shù)據(jù)庫查詢;
  • CacheConcurrencyStrategy.TRANSACTIONAL:事務(wù)模式,支持事務(wù),當(dāng)事務(wù)發(fā)生回滾時,緩存中的數(shù)據(jù)也回滾,只支持 JPA 。

5. 配置 ehcache.xml 文件:

<ehcache> 
  <!-- 指定一個文件目錄,當(dāng)EHCache把數(shù)據(jù)寫到硬盤上時,將把數(shù)據(jù)寫到這個目錄下 --> 
  <diskStore path="java.io.tmpdir"/> 
  <!--  
    name 設(shè)置緩存的名字,他的取值為類的完整名字或者類的集合的名字; 
    maxElementsInMemory 設(shè)置基于內(nèi)存的緩存可存放的對象的最大數(shù)目 
    eternal 如果為true,表示對象永遠(yuǎn)不會過期,此時會忽略timeToIdleSeconds和timeToLiveSeconds,默認(rèn)為false; 
    timeToIdleSeconds 設(shè)定允許對象處于空閑狀態(tài)的最長時間,以秒為單位; 
    timeToLiveSeconds 設(shè)定對象允許存在于緩存中的最長時間,以秒為單位; 
    overflowToDisk 如果為true,表示當(dāng)基于內(nèi)存的緩存中的對象數(shù)目達(dá)到maxElementsInMemory界限,會把溢出的對象寫到基于硬盤的緩存中; 
   --> 
  <!-- 設(shè)置緩存的默認(rèn)數(shù)據(jù)過期策略 --> 
  <defaultCache 
    maxElementsInMemory="1000" 
    eternal="false" 
    timeToIdleSeconds="1200" 
    timeToLiveSeconds="1200" 
    overflowToDisk="false" 
  /> 
  <!-- 設(shè)定具體的第二級緩存的數(shù)據(jù)過期策略 --> 
  <cache name="com.shawearn.model.User" 
    maxElementsInMemory="1000" 
    eternal="false" 
    timeToIdleSeconds="3000" 
    timeToLiveSeconds="3000" 
    overflowToDisk="false" /> 
</ehcache> 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

南木林县| 融水| 水富县| 台前县| 五家渠市| 福鼎市| 烟台市| 松原市| 隆子县| 志丹县| 城步| 米易县| 石河子市| 彰武县| 紫金县| 新巴尔虎右旗| 嘉荫县| 攀枝花市| 托克托县| 醴陵市| 西林县| 开阳县| 梅州市| 会泽县| 云南省| 濮阳县| 乌拉特后旗| 萍乡市| 友谊县| 五原县| 井研县| 舒兰市| 台湾省| 台北县| 郓城县| 东宁县| 略阳县| 虎林市| 林州市| 湾仔区| 富裕县|