源码地址:https://github.com/mybatis/mybatis-3/
仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/19-spring
Spring整合MyBatis
对spring的源码不了解,这里只对流程进行总结:
1.加载spring的配置文件,每一个标签都对应一个bean,而且是有顺序的解析
2.先实例化SqlSessionFactoryBean对象,这里会创建sqlSessionFactory,创建sqlSessionFactory时会对mybatis做xml解析等等操作,mybaits的初始化在这一步就完成了
3.然后实例化MapperScannerConfigurer对象,这里根据配置的包路径进行解析,遍历包路径下所有的Dao接口,会为每个接口创建BeanDefinition,然后注册到容器中后,容器会根据这些BeanDefinition配置的beanClass内容MapperFactoryBean创建对应的bean,但是bean的实例化可能是在稍后的阶段进行的,在bean实例化后再注入到容器中