mybatis baseexcetor
SpringManagedTransaction 从 DataSourceUtils 取 connect
datasourceutil 从 async transaction util中取connect
有了 transaction 注解 mybatis 如何获取数据库连接
- spring TransactionInterceptor 事务切面中,开启事务,会将connect holder 放入 TransactionSynchronizationManager 的thread local中
- 当mybatis 需求获取连接时,mybatis 的 SpringManagedTransaction 会从 spring 的 DataSourceUtils 中获取连接。 DataSourceUtils 先从 TransactionSynchronizationManager 取,如果没取到,从DataSource中获取一个,并注册到 TransactionSynchronizationManager 中。
没有 transaction 注解
- spring TransactionInterceptor 事务切面中,开启事务,会将connect holder 放入 TransactionSynchronizationManager 的thread local中
- 当mybatis 需求获取连接时,mybatis 的 SpringManagedTransaction 会从 spring 的 DataSourceUtils 中获取连接。 DataSourceUtils 从DataSource中获取一个,并注册到 TransactionSynchronizat