MyBatis 原始碼解讀-XMLConfigBuilder
阿新 • • 發佈:2020-12-10
XMLConfigBuilder 是抽象類BaseBuilder 的一個子類,專門用來解析全域性配置檔案,針對不同的構建目標還有其他的一些子類,比如:
XMLMapperBuilder:解析Mapper 對映器
XMLStatementBuilder:解析增刪改查標籤
根據我們解析的檔案流,這裡後面兩個引數都是空的,建立了一個parser。
這裡有兩步,第一步是呼叫parser 的parse()方法,它會返回一個Configuration類。
之前我們說過,也就是配置檔案裡面所有的資訊都會放在Configuration 裡面。Configuration 類裡面有很多的屬性,有很多是跟config 裡面的標籤直接對應的。
我們先看一下parse()方法:
首先會檢查是不是已經解析過,也就是說在應用的生命週期裡面,config 配置檔案只需要解析一次,生成的Configuration 物件也會存在應用的整個生命週期中。接下來就是parseConfiguration 方法:
parseConfiguration(parser.evalNode("/configuration"));
這下面有十幾個方法,對應著config 檔案裡面的所有一級標籤。
問題:MyBatis 全域性配置檔案的順序可以顛倒嗎?