mybatis原始碼解析 IO讀取檔案模組

2021-09-11 03:37:45 字數 1707 閱讀 8198

前言

我採用的原始碼位址 ibatis原始碼 在ibatis-2目錄裡,原始碼release jar包測試**在ibatis_release_jar_test目錄裡。

之所以使用ibatis原始碼作為閱讀物件,要明確的一點就是閱讀原始碼不是為了找工作,而是為了工作為了讓水平提高。mybatis原始碼現在已經優化的越來越好,越來越強大。在這些強大的背後,邏輯業務非常複雜。想要閱讀其精髓,那麼就要從簡單的開始。ibatis**量小,閱讀容易。

在測試使用ibatis時候,第一步會有載入sqlmapconfig.xml檔案。

//讀取xml檔案

reader reader = resources.

getresourceasreader

("sqlmapconfig.xml"

);

繼續抽絲剝繭。呼叫resources類中的getresourceasreader方法,返回io中的reader物件;

並且可以看出resources類中的方法全是static修飾的方法,直接呼叫即可。resources類是ibatis io的基礎類,而且實現方式簡單。其他類中的方法讀取乙個檔案,最終都要通過resources獲取所想要的資料結構。

/**@param resource 是sqlmapconfig.xml檔案的路徑*/

public

static reader getresourceasreader

(string resource)

throws ioexception

else

return reader;

}

根據檔案路徑讀取檔案返回inputstream的方法是getresourceasstream,其方法裡的核心內容是jdk中的classloader載入檔案,然後返回inputstream。

public

static inputstream getresourceasstream

(classloader loader,

string resource)

throws ioexception

知道了根據檔案路徑讀取檔案返回inputstream的方法。那麼可以進一步進行推廣,讀取properties那正是手到擒來。思路是根據properties檔案的inputstream然後,載入到properties物件中。

//resource是properties檔案路徑

public

static properties getresourceasproperties

(string resource)

throws ioexception

上面的方法就是載入sqlmapconfig.xml配置檔案,將其變成reader物件。然後對其下一步操作。ibatis的io塊在這裡介紹完畢,通過resources類中的方法,進一步推廣,思路是將檔案變成reader或者inputstream。

如果想要更加直觀的感受在batchtest測試方法中執行跟蹤。

mybatis原始碼解析

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

mybatis原始碼解析

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

Mybatis原始碼解析

mybatis原始碼解析 一 mybatis 流程三個階段 1 初始化階段 讀取xml 配置檔案和註解中的配置資訊,建立配置物件,並完成各個模組的初始工作 3 資料處理階段 通過 sqlsession 完成sql解析,引數的對映 sql的執行 結果的反射解析過程 二 簡化版 mybatis 實現思路...