从源码角度剖析 Spring 如何管理 mybatis 事务的?
环境与背景Ext1:本文源码解析基于 mybatis-spring-boot-starter 2.1.1,即 mybatis 3.5.3 版本。
Ext2:本文主要是对源码的讲解,着重点会是在源码上。
Ext3:阅读本文前,最好对 mapperProxy、 sqlSession 有一定的了解
一、 XMLMapperBuilder、mapperProxy 与 mapperMethod上篇文章 讲了 mapper 文件是怎么解析的,在文章开头提到了 SqlSessionFactory 这个重要的对象,是的就是我们经常需要配置的:
12345@Bean@ConditionalOnMissingBeanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { // 略}
这里面做了很多自动化的配置,当然我们可以通过重写它来自定义我们自己的 sqlSessionFactory,借用一下上篇文章的图片:
spring 借助 SqlSessionF
...