Mybatis原始碼解析 日誌

2021-09-29 06:12:37 字數 681 閱讀 8379

mybatis自己有一套統一的日誌介面供上層使用,使用介面卡模式為常用日誌框架提供了介面卡

負責建立對應日誌元件的介面卡,其靜態塊初始化載入會按順序載入各日誌元件的介面卡,並使用第乙個載入到的日誌元件介面卡,儲存到logconstructor這個靜態欄位裡

basejdbclogger記錄了繫結sql引數相關的set方法以及執行sql語句相關的方法名稱

connectionlogger封裝了connection物件同時實現了invocationhandler物件,其newinstance()方法會為其封裝了connection物件建立**物件。其invoke()方法為preparestatement(),prepaercall(),createstatement()等方法提供了**,具體是呼叫這些方法時會建立相應的statement物件及**物件並返回**。

preparedstatementlogger,statementlogger,resultsetloggernewinstance()方法都類似,他們的invoke()方法會對其相應的方法新增日誌列印的功能

mybatis之日誌原始碼解析

mybatis日誌這塊運用的設計模式有點像slf4j類似一樣,運用了構造器 介面卡和外觀者設計模式。應用嘗試載入各個日誌框架類來封裝成內部自己設計的log介面。這整個過程比較簡單,大概流程如下 原始碼實現流程 第一步,通過org.apache.ibatis.logging.logfactory類初始...

mybatis原始碼解析

最近閱讀了許久的mybatis原始碼,小有所悟。同時也發現網上有許多優秀的mybatis原始碼講解博文。本人打算把自己閱讀過的 覺得不錯的一些博文列出來。以此進一步加深對mybatis框架的理解。其實還有乙個目的是,本人也想寫一系列博文來分享自己對mybatis的理解。然而。個人文筆太差,列出的這些...

mybatis原始碼解析

類列表 sqlsessionfactory 說明 sqlsession物件的工場用於建立sqlsession。sqlsession 說明 執行sql的介面類。configuration 說明 資料庫連線和sql語句配置類。executor 說明資料操作方法介面類 步驟 載入xml檔案到xmlconf...