欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Mybatis的二級緩存配置

 更新時間:2017年05月11日 10:38:17   作者:愛軍_  
這篇文章主要介紹了Mybatis的二級緩存配置的相關(guān)資料,需要的朋友可以參考下

一個項(xiàng)目中肯定會存在很多共用的查詢數(shù)據(jù),對于這一部分的數(shù)據(jù),沒必要

每一個用戶訪問時都去查詢數(shù)據(jù)庫,因此配置二級緩存將是非常必要的。

Mybatis的二級緩存配置相當(dāng)容易,要開啟二級緩存,只需要在你的Mapper

映射文件中添加一行:

<cache />

它將采用默認(rèn)的行為進(jìn)行緩存:

映射文件中所有的select語句將被緩存

映射文件中所有的insert、update和delete語句將刷新緩存

緩存將使用LRU(Least Recently Used)最近最少使用策略算法來回收

刷新間隔(no Flush Interval,沒有刷新間隔),緩存不會以任何時間順序來刷新

緩存會存儲列表集合和對象(無論查詢方法返回什么)的1024個引用

緩存會被視為read/write(可讀/可寫)的緩存,意味著對象檢索不是- 共享的,而且可以安全的被調(diào)用者修改,而不干擾其他調(diào)用者或者線程所做的潛在修改

所有這些屬性都可以通過緩存元素的屬性來修改,比如:

 <!--1小時緩存-->
 <cache eviction="LRU"
   flushInterval="3600000" size="512"
   readOnly="true"/>

這個更高級的配置創(chuàng)建了一個FIFO緩存,并每隔3個小時刷新緩存,儲存結(jié)

果對象或列表的512個引用,而且返回的對象被認(rèn)為是只讀的,因此在不同線程中的調(diào)用者之間修改他們會導(dǎo)致沖突。

可用的收回策略有:

【默認(rèn)】LRU——最近最少使用的:移除最長時間不被使用的對象

FIFO——先進(jìn)先出的:按對象進(jìn)入緩存的順序來移除他們

SOFT——軟引用:移除基于垃圾回收器狀態(tài)和軟引用規(guī)則的對象

WEAK——弱引用:更積極地移除基于垃圾收集器狀態(tài)和弱引用規(guī)則的對象。

flushInterval(刷新間隔)可以被設(shè)置為任意的正整數(shù)(60*60*1000這種形式是不允許的),而且它們代表一個合理的毫秒形式的時間段。默認(rèn)情況是不設(shè)置,也就是沒有刷新間隔,緩存僅僅調(diào)用語句時刷新。

size(引用數(shù)目)可以被設(shè)置為任意正整數(shù),要記住你緩存的對象數(shù)目和你運(yùn)行環(huán)境的可用內(nèi)存資源數(shù)目。默認(rèn)值是1024.

readOnly(只讀)屬性可以被設(shè)置為true或false。只讀的緩存會給所有調(diào)用者返回緩存對象的相同實(shí)例,因此這些對象不能被修改,這提供了很重要的性能優(yōu)勢??勺x寫的緩存會返回緩存對象的拷貝(通過發(fā)序列化)。這會慢一些,但是安全,因此默認(rèn)是false。

配置完表示該mapper映射文件中,所有的select語句都將被緩存,所有的insert、update和delete語句都將刷新緩存。但是實(shí)際中,我們并是希望這樣,有些select不想被緩存時,可以添加select的屬性useCache=“false”;有些insert、update和delete不想讓他刷新緩存時,添加屬性flushCache=”false ”。

以上所述是小編給大家介紹的Mybatis的二級緩存配置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java中注解的工作原理

    Java中注解的工作原理

    什么是注解?用一個詞就可以描述注解,那就是元數(shù)據(jù),即一種描述數(shù)據(jù)的數(shù)據(jù),Java中的注解是如何工作的,需要的朋友可以參考下
    2015-12-12
  • java如何獲取兩個日期的時間差

    java如何獲取兩個日期的時間差

    這篇文章主要為大家詳細(xì)介紹了java獲取兩個日期時間差的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Java使用BigDecimal精確運(yùn)算浮點(diǎn)數(shù)

    Java使用BigDecimal精確運(yùn)算浮點(diǎn)數(shù)

    這篇文章主要介紹了Java使用BigDecimal精確運(yùn)算浮點(diǎn)數(shù),幫助大家更好的處理浮點(diǎn)數(shù)數(shù)據(jù),感興趣的朋友可以了解下
    2020-10-10
  • SpringTask-Timer實(shí)現(xiàn)定時任務(wù)的詳細(xì)代碼

    SpringTask-Timer實(shí)現(xiàn)定時任務(wù)的詳細(xì)代碼

    在項(xiàng)目中開發(fā)定時任務(wù)應(yīng)該一種比較常見的需求,今天通過示例代碼給大家講解SpringTask-Timer實(shí)現(xiàn)定時任務(wù)的相關(guān)知識,感興趣的朋友一起看看吧
    2024-06-06
  • SpringBoot與單元測試JUnit的結(jié)合操作

    SpringBoot與單元測試JUnit的結(jié)合操作

    這篇文章主要介紹了SpringBoot與單元測試JUnit的結(jié)合操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring源碼解析之推斷構(gòu)造方法

    Spring源碼解析之推斷構(gòu)造方法

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Spring推斷構(gòu)造方法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 詳解Java冒泡排序

    詳解Java冒泡排序

    本篇文章通過代碼實(shí)例給大家詳細(xì)分析了Java冒泡排序的原理,有興趣的朋友可以學(xué)習(xí)下。
    2018-02-02
  • javaWeb如何實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼詳解

    javaWeb如何實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼詳解

    這篇文章主要給大家介紹了關(guān)于javaWeb如何實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解

    Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解

    這篇文章主要介紹了Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • java.net.ConnectException異常的正確解決方法(親測有效!)

    java.net.ConnectException異常的正確解決方法(親測有效!)

    java.net.ConnectException異常是與網(wǎng)絡(luò)相關(guān)的最常見的Java異常之一,建立從客戶端應(yīng)用程序到服務(wù)器的TCP連接時,我們可能會遇到它,這篇文章主要給大家介紹了關(guān)于java.net.ConnectException異常的正確解決方法,需要的朋友可以參考下
    2024-01-01

最新評論