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

mybatis的Configuration詳解

 更新時間:2020年11月03日 15:10:33   作者:IT樂知  
這篇文章主要介紹了mybatis的Configuration詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

上一篇介紹了mybatis中SqlSessionFactory的創(chuàng)建過程,今天來學(xué)習(xí)它默認實現(xiàn)中的唯一屬性Configuration ​

回顧

還是最開始的mybatis源碼環(huán)境中的測試代碼如下圖:

1測試代碼.jpg

利用mybatis查出數(shù)據(jù)只用三步:創(chuàng)建SqlSessionFactory、通過SqlSessionFactory創(chuàng)建SqlSession、SqlSession執(zhí)行selectOne方法。

上一篇文章梳理了SqlSessionFactory創(chuàng)建過程的源碼,發(fā)現(xiàn)它返回的是它的默認實現(xiàn)類DefaultSqlSessionFactory,而默認實現(xiàn)類有有唯一的一個屬性configuration,所以SqlSessionFactory根本的依賴還是Configuration類。

Configuration基礎(chǔ)信息說明

Configuration類中有很多的屬性,下面是基礎(chǔ)屬性的源碼以及部分說明如下圖:

2基本屬性.jpg

上面主要是一些settings屬性,settings屬性是MyBatis 的基礎(chǔ)性設(shè)置,它們會改變 MyBatis 的運行時行為。更加完整的說明在官方文檔上:https://mybatis.org/mybatis-3/zh/configuration.html。去掉zh可以查看英文版本。

這里面有一個熟悉protected Properties variables = new Properties();這個屬性對應(yīng)是我們在mybatis配置文件中有時會配置的properties節(jié)點的內(nèi)容,有時候我們會配置url、driver、username、password等信息。然后在其他節(jié)點使用${}來使用。

擴展屬性和無參構(gòu)造

上面介紹了決定mybatis一些基礎(chǔ)行為的屬性,在Configuration還存有一些mybatis可用來擴展的和運行中需要信息,下圖中是這些屬性已經(jīng)Configuration的無參構(gòu)造函數(shù):

3集合無參構(gòu)造.jpg

上一節(jié)是mybatis中的環(huán)境配置信息,而上圖是一些mybatis運行中要用到的信息,比如:resultMap集合、sql語句集合、插件列表、緩存、類型別名、類型處理器等。

其中很多屬性使用的是Configuration中的了一個內(nèi)部靜態(tài)類StrictMap,它繼承自HashMap,對HashMap的裝飾在于增加了put時防重復(fù)的處理,get時取不到值時候的異常處理,這樣在使用時就不需要關(guān)心各種異常,簡化應(yīng)用層邏輯。

Configuration的無參構(gòu)造函數(shù)主要往typeAliasRegistry中put了一些數(shù)據(jù),typeAliasRegistry是類型注冊器,通過這段代碼知道為什么可以在配置文件中配置“”這類信息了,因為通過type的值能夠找到對應(yīng)的類。

再看parse方法

在上一篇文章SqlSessionFactory創(chuàng)建過程中講到了Configuration是通過無參構(gòu)造函數(shù)創(chuàng)建了一個Configuration對象,然后在最后調(diào)用了parse方法。無參構(gòu)造函數(shù)上一節(jié)已經(jīng)進行了說明,最后再來看上一篇文章最后的parse方法調(diào)用的parseConfiguration方法如下圖:

4解析xml.jpg

這次在看parseConfiguration方法中的內(nèi)容就更加清楚在干嘛了。

總結(jié)

今天只梳理了Configuration中包含的屬性以及默認構(gòu)造函數(shù),分析完成后最終還是指向了上一篇文章的parseConfiguration方法,那么從下一篇文章開始就來仔細分析一下parseConfiguration對Configuration具體做了哪些設(shè)置以及流程。

到此這篇關(guān)于mybatis的Configuration詳解的文章就介紹到這了,更多相關(guān)mybatis Configuration內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    Java實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址

    這篇文章主要介紹了如何利用Java語言實現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址,文中的示例代碼講解詳細,對我們學(xué)習(xí)有一定的參考價值,快跟隨小編一起學(xué)習(xí)一下吧
    2022-06-06
  • Java使用集合實現(xiàn)斗地主分牌完整代碼

    Java使用集合實現(xiàn)斗地主分牌完整代碼

    在斗地主游戲中,通常是將一副牌平均分成3份,每份17張牌,并留3張底牌,我們可以使用集合來實現(xiàn)這一功能,這篇文章主要給大家介紹了關(guān)于Java使用集合實現(xiàn)斗地主分牌的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • JDK(免安裝)各種版本下載及配置詳細圖文教程

    JDK(免安裝)各種版本下載及配置詳細圖文教程

    這篇文章主要給大家介紹了關(guān)于JDK(免安裝)各種版本下載及配置的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-07-07
  • SpringBoot的異常處理流程是什么樣的?

    SpringBoot的異常處理流程是什么樣的?

    今天給大家?guī)淼氖荍ava的相關(guān)知識,文章圍繞著SpringBoot的異常處理流程展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java實現(xiàn)批量下載(打包成zip)的實現(xiàn)

    Java實現(xiàn)批量下載(打包成zip)的實現(xiàn)

    這篇文章主要介紹了Java實現(xiàn)批量下載(打包成zip)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java 添加和刪除PDF圖層的示例代碼

    Java 添加和刪除PDF圖層的示例代碼

    本文將介紹如何使用Spire.PDF for Java來添加和刪除PDF圖層,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-02-02
  • 分析那些不講武德的SDK(構(gòu)造使用規(guī)范)

    分析那些不講武德的SDK(構(gòu)造使用規(guī)范)

    這篇文章主要為大家介紹了盤點分析那些不講武德的SDK(構(gòu)造規(guī)范)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • sun?unsafe類功能及使用注意事項詳解

    sun?unsafe類功能及使用注意事項詳解

    這篇文章主要為大家介紹了unsafe類的功能及在使用中需要注意的事項詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-01-01
  • Java實現(xiàn)時間日期格式轉(zhuǎn)換示例

    Java實現(xiàn)時間日期格式轉(zhuǎn)換示例

    本篇文章主要介紹了ava實現(xiàn)時間日期格式轉(zhuǎn)換示例,實現(xiàn)了各種時間輸出的類型,有興趣的可以了解一下。
    2017-01-01
  • 詳解Java如何在CompletableFuture中實現(xiàn)日志記錄

    詳解Java如何在CompletableFuture中實現(xiàn)日志記錄

    這篇文章主要為大家詳細介紹了一種slf4j自帶的MDC類,來記錄完整的請求日志,和在CompletableFuture異步線程中如何保留鏈路id,需要的可以參考一下
    2023-04-04

最新評論