Mybatis總體架構視圖:
接java 口redis 層spring |
SqlSessionsql (定義了Mybatis暴露給應用程序調用的API)緩存 |
|||
核架構 心app 處框架 理jvm 層spa |
配置解析 (加載核心配置、映射配置、 mapper接口註解信息, 解析後造成的對象 保存至Configuration對象) |
參數映射 | SQL解析 (動態sql拼接) |
|
SQL執行 (sql執行涉及多個組件,Executor、 StatementHandler、ParameterHandler、 ResultSetHandler) |
結果集映射 | 插件 (對sql進行攔截,處理) |
||
基 礎 支 持 層 |
數據源模塊 (自身實現數據源; 提供第三方數據源集成接口) |
事物管理模塊 (自身簡單實現事物; 常與spring集成, 事物由spring控制) |
緩存模塊 (兩級緩存:自身緩存與應用運行 於同一個jvm,共享一塊內存, 緩存數據過大時應用redis等插件) |
Binding模塊 (將用戶自定義的Mapper接口 與xml映射文件關聯, 經過調用mapper方法執行相應的sql) |
反射模塊 (封裝jdk的反射) |
類型轉換 (別名機制;jdbcType <=>javaType) |
日誌模塊 (集成第三 方日誌框架) |
資源加載 (類加載器封裝;提供加載類 文件和其餘資源文件功能) |
解析器模塊 (對Xpath進行封裝,解析配置xml; 提供處理動態sql佔位符支持) |
核心處理層[sql執行]過程視圖: