MyBatis的解析和執行原理
MyBatis的執行分為兩部分,第一部分是讀取配置檔案快取到Configuration物件,用以建立SqlSessionFactory,第二部分是SqlSession的執行過程(反射技術和動態代理技術)。
在DAO層的Mapper僅僅是一個介面,而不是一個包含邏輯的實現類。介面是無法例項化並且執行的,所以這就用到了動態代理結束,通過DEBUG的過程來檢視Mapper的具體細節。
反射呼叫的最大好處是配置型大大提高,就如同Spring IOC容器一樣,我們可以給很多配置引數,使得Java應用程式能夠順利執行起來,大大提高了Java的靈活性和可配置性,降低模組之間的耦合。
動態代理的方法主要有JDK動態代理(此種代理方式基於介面的代理,被代理類必須實現了介面);CGLIB動態代理(此種代理方式可以解決被代理類沒有實現介面)。
構建SqlSessionFactory過程
第一步:通過org.apache.ibatisbuilder.xml.XMLConfigBuilder解析配置的XML檔案,獨處配置引數,並將讀取的資料存入這個org.apache.ibatisbuilder.session.Configuration類中。
第二步:使用Configuration物件去建立SqlSessionFactory。
SqlSession執行過程
相關文章
- 深入淺出MyBatis:MyBatis解析和執行原理MyBatis
- [Spring]MyBatis的執行原理SpringMyBatis
- MyBatis動態代理執行原理MyBatis
- MyBatis原理解析MyBatis
- JavaScript執行原理解析JavaScript
- JavaScript 執行原理解析JavaScript
- 從原始碼的角度解析執行緒池執行原理原始碼執行緒
- View Animation 執行原理解析View
- Mybatis原始碼解析之執行SQL語句MyBatis原始碼SQL
- Day65 Mybatis的執行原理以及常見面試題MyBatis面試題
- 網際網路輕量級框架SSM-查缺補漏第七天(MyBatis的解析和執行原理框架SSMMyBatis
- 多執行緒下載原理解析執行緒
- 屬性動畫 ValueAnimator 執行原理全解析動畫
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- Mybatis原理和SqlSessionMyBatisSQLSession
- Java 執行緒池架構原理和原始碼解析(ThreadPoolExecutor)Java執行緒架構原始碼thread
- MyBatis SQL執行MyBatisSQL
- MyBatis執行流程MyBatis
- PHP 底層的執行機制與原理解析PHP
- Java執行緒池的使用和原理Java執行緒
- 深入理解Java中的反射機制和使用原理!詳細解析invoke方法的執行和使用Java反射
- Spark的執行原理Spark
- HDFS的執行原理
- Shiro原理解析(二)--過濾器的執行機制過濾器
- 深入原始碼,深度解析Java 執行緒池的實現原理原始碼Java執行緒
- Spring-Mybatis的批量執行SpringMyBatis
- Exists和IN的原理解析
- mybatis執行sql指令碼MyBatisSQL指令碼
- MyBatis Generator配置及執行MyBatis
- SpringBoot執行緒池和Java執行緒池的實現原理Spring Boot執行緒Java
- 【Mybatis原始碼解析】- 整體架構及原理MyBatis原始碼架構
- Spark開發-spark執行原理和RDDSpark
- mybatis collection解析以及和association的區別MyBatis
- kill 指令的執行原理
- Buffer cache的執行原理
- 執行緒的基本解析執行緒
- CLR執行原理
- Yarn執行原理Yarn