mybatis日誌這塊運用的設計模式有點像slf4j類似一樣,運用了構造器、介面卡和外觀者設計模式。應用嘗試載入各個日誌框架類來封裝成內部自己設計的log介面。這整個過程比較簡單,大概流程如下:
原始碼實現流程
第一步,通過org.apache.ibatis.logging.logfactory類初始化嘗試載入各個框架日誌類。
第二步、不同框架具體載入使用不同的載入方式,但實現同一mybatis自定義介面log
第三步,通過構造器模式,建立日誌例項
到此,整個myabtsi日誌原始碼就分析完了。它應用的設計思想,確實很精妙。通過logfactory去嘗試載入各大日誌框架,再統一封裝成自定義的log介面。客戶端毫無感知這一切的過程。並且日誌的切換很靈活。其實,我們可以吧這種思想應用到我們實際專案中, 比如redis客戶端的封裝(單機、分片、集群模式)通過統一操作返回。
Mybatis原始碼解析 日誌
mybatis自己有一套統一的日誌介面供上層使用,使用介面卡模式為常用日誌框架提供了介面卡 負責建立對應日誌元件的介面卡,其靜態塊初始化載入會按順序載入各日誌元件的介面卡,並使用第乙個載入到的日誌元件介面卡,儲存到logconstructor這個靜態欄位裡 basejdbclogger記錄了繫結sq...
mybatis原始碼解析
最近閱讀了許久的mybatis原始碼,小有所悟。同時也發現網上有許多優秀的mybatis原始碼講解博文。本人打算把自己閱讀過的 覺得不錯的一些博文列出來。以此進一步加深對mybatis框架的理解。其實還有乙個目的是,本人也想寫一系列博文來分享自己對mybatis的理解。然而。個人文筆太差,列出的這些...
mybatis原始碼解析
類列表 sqlsessionfactory 說明 sqlsession物件的工場用於建立sqlsession。sqlsession 說明 執行sql的介面類。configuration 說明 資料庫連線和sql語句配置類。executor 說明資料操作方法介面類 步驟 載入xml檔案到xmlconf...