Spring整合Mybatis步驟


Spring整Mybatis底層原理實現步驟
1.首先Spring主要做對Bean的管理,包含bean的初始化等信息
spring內部有一個BeanDefinition 有一系列對Bean的描述,包含單例/多例 beanName BeanClass等信息,也可以理解成 標簽所描述的信息
2.spring集成了Mybatis 那么也要管理mybatis相關聯的bean,我們經常使用的通常是定義xxxMapper 的接口,想要接口被Spring管理必須需要對應類實例化,所以就需要的動態代理相關內容,我們所知的已知接口可以使用JDK動態代理為mapper相關生成代理類,放入spring 容器種等待調用 然后就可以使用@Autowired xxxMapper獲取具體的實例
3.mybatis相關代理類生成的時機,已知spring的bean的流程 掃描指定包路徑下的Class文件,根據class信息生成對應的BeanDefinition 這里根據時機修改beanDefinition信息也就是為mapper生成代理類 根據BD生成bean實例,把實例放入spring容器中
4.spring處理的流程是 class-->組建beanDefinition->為mapper生成對應的BeanDefinition >BeanFactory 進行處理,-->beanFactory后續處理,-->實例化生成Bean實例放入spring容器中
至於如何生成bean就可以由FactoryBean去自定義生成我們需要的mapper的bean對象

正式環境使用中
1.使用@MapperScan注解放入需要掃描的mapper的接口包路徑
2.內部使用@Import導入MapperScannerRegistrar.class 來實現生成代理Mapper類的步驟
3.實現registerBeanDefinition方法掃描@MapperScan注解拿到掃描路徑
4.調用spring類拿到BeanDefinition需要的所有的Mapper接口等待生成代理類
5.創建的definition設置構造方法傳遞的是被代理類的Class及我們自己寫的Mapper接口,為definition設置beanClass為MapperFacotryBean.class(org.mybatis.spring.mapper.MapperFactoryBean)添加到spring容器中
6.在實例化bean實例的時候調用MapperFactoryBean 的getObject方法里面使用jdk動態代理生成對應的代理實例,供項目使用
至此 spring中整合myatis 並合理使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM