91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深入淺析mybatis中的Configuration

發布時間:2020-11-04 14:34:38 來源:億速云 閱讀:136 作者:Leah 欄目:開發技術

本篇文章為大家展示了深入淺析mybatis中的Configuration,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

mybatis源碼環境中的測試代碼如下圖:

深入淺析mybatis中的Configuration

利用mybatis查出數據只用三步:創建SqlSessionFactory、通過SqlSessionFactory創建SqlSession、SqlSession執行selectOne方法。

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

Configuration基礎信息說明

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

深入淺析mybatis中的Configuration

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

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

擴展屬性和無參構造

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

深入淺析mybatis中的Configuration

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

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

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

再看parse方法

在上一篇文章SqlSessionFactory創建過程中講到了Configuration是通過無參構造函數創建了一個Configuration對象,然后在最后調用了parse方法。無參構造函數上一節已經進行了說明,最后再來看上一篇文章最后的parse方法調用的parseConfiguration方法如下圖:

深入淺析mybatis中的Configuration

上述內容就是深入淺析mybatis中的Configuration,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民和| 盐边县| 获嘉县| 镇康县| 合肥市| 新巴尔虎左旗| 东阳市| 多伦县| 灵丘县| 盐池县| 南靖县| 新兴县| 额尔古纳市| 盐津县| 宜兰市| 兴和县| 建始县| 黄平县| 洛南县| 安国市| 买车| 左云县| 龙州县| 桃江县| 沙坪坝区| 什邡市| 肇源县| 图们市| 密山市| 洪泽县| 乌苏市| 毕节市| 高唐县| 乌兰浩特市| 彭阳县| 诸暨市| 大同县| 驻马店市| 公主岭市| 应城市| 元朗区|