在mybatis初始化過程中,大致會有以下幾個步驟:
1. 建立configuration全域性配置物件,會往typealiasregistry別名註冊中心新增mybatis需要用到的相關類,並設定預設的語言驅動類為xmllanguagedriver
3. 構建defaultsqlsessionfactory物件,通過它可以建立defaultsqlsession物件,mybatis中sqlsession的預設實現類
因為整個初始化過程涉及到的**比較多,所以拆分成了四個模組依次對mybatis的初始化進行分析:
• 《mybatis初始化(一)之載入mybatis-config.xml》
• 《mybatis初始化(三)之sql初始化(上)》
• 《mybatis初始化(四)之sql初始化(下)》
初始化(一)之載入mybatis-config.xml
初始化入口在org.apache.ibatis.session.sqlsessionfactorybuilder構造器中,因為需要通過mybatis-config.xml配置檔案構建乙個sqlsessionfactory工廠,用於建立sqlsession會話
主要涉及到以下幾個類:
• org.apache.ibatis.session.sqlsessionfactorybuilder:用於構建sqlsessionfactory工廠
• org.apache.ibatis.session.configuration:mybatis的全域性配置物件,儲存所有的配置與初始化過程所產生的物件
sqlsessionfactorybuilder
org.apache.ibatis.session.sqlsessionfactorybuilder:構建sqlsessionfactory工廠類,裡面定義了許多build過載方法,主要分為處理reader和inputstream兩種檔案資源物件
我們來看看其中的乙個build方法:
public class sqlsessionfactorybuilder catch (exception e) finally catch (ioexception e) catch (exception e) {
在parse()解析方法中,獲取到document物件的節點,然後呼叫parseconfiguration進行解析,依次解析以下標籤:
<1> 解析 標籤,呼叫propertieselement方法
<2>解析標籤,解析配置生成 properties 物件,呼叫settingsasproperties方法
<3> 解析標籤,生成別名與類的對映關係,呼叫typealiaseselement方法
<4> 解析標籤,新增自定義***外掛程式,呼叫pluginelement方法
<5> 解析標籤,自定義例項工廠,呼叫objectfactoryelement方法
<7> 解析標籤,自定義 reflector 工廠,呼叫reflecto***ctoryelement方法
<8> 解析標籤,自定義當前環境資訊,呼叫environmentselement方法
<9>解析標籤,資料庫識別符號,呼叫databaseidproviderelement方法
<10>解析標籤,自定義型別處理器,呼叫typehandlerelement方法
關於mybatis的配置描述請參考mybatis官方文件的配置說明
上面涉及到的解析方法就不一一列出來了
初始化 指定初始化
id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...
初始化 1 預設初始化 列表初始化
初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...
MyBatis之初始化
mybatis初始化的主要工作是載入並解析mybatis config.xml配置檔案 對映配置檔案以及相關的註解資訊。mybatis初始化的入口是 sqlsessionfactorybuilder build reader reader,string environment,properties ...