原生mybatis解析配置檔案的原理
阿新 • • 發佈:2018-12-17
最近閒來無事研究mybaits的執行流程和原始碼,這裡來記錄下一點點心得...
原生mybaits(沒有和任何框架整合的)的全域性配置檔案解析的流程如下:
首先容器啟動後mybatis底層建立sqlsessionfactorybuilder物件,該物件呼叫builder方法傳入全域性配置檔案的輸入流
方法內使用XmlConfigBuilder物件接收輸入流作為配置檔案的解析器,並呼叫sqlsessionfactorybuilder的builder方法傳入解析器,解析器呼叫parse方法在內部進行標籤解析
在該方法內解析器解析全域性配置檔案的configuration標籤(根標籤),作為引數傳遞到parseConfiguration方法中
在該方法內,根據根標籤configuration來解析配置檔案中的子標籤,即使是沒有定義的標籤,在這裡也會解析出來設定為預設值
這個地方解析的是在全域性配置檔案中註冊的mapper.xml檔案,裡面走了非常多的方法,有興趣的可以深入瞭解
所有的屬性包括全域性配置檔案的標籤內容和xml中每個增刪改查的標籤內容都被封裝在configuration物件中,也就是說整個配置檔案的資訊都集中在configuration類中.
最後傳入configuration物件返回一個型別為defaultSqlSessionFactory物件....
這就是mybatis關於底層的載入配置檔案的原始碼流程....