事务的实现需要的配置
1.需要事务管理器
2.事务aop相关配置
1.需要事务管理器
我这里就是针对于mybaits来讲解的哈,因为事务管理器还有jpa的,hibernate的
思考??? 如果spring要管理事务的话,那肯定连接 就要spring来创建,mybaits获取连接的话,就要获取spring创建的这个连接,才能够控制事务
1.创建连接
2.把连接的自动提交修改为false -- Connection 默认为true,自动提交
3.事务的管理,提交/回滚
4.跨方法事务的传递 (用到的是线程的ThreadLocal)
5.提供模板,DataSourceUtils让mybaits获取到 spring创建的这个连接,将事务的操作交给spring来做
如果是之前spring的话,就要添加下面这个配置,注入事务管理器
/**
* 必须要配置事务管理器才可以
* DataSourceTransactionManager 是spring提供的事务管理器
* @param dataSource
* @return
*/
@Bean
public DataSourceTransactionManager dataSourceTransactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
当然,spring boot 就不用显示配置这个事务管理器了,因为在aop的自动装配里面 帮我们把这个操作做了
类图在下面:
上面事务aop中,我们晓得了,通知 最后会被转为拦截器,进行一个拦截器链的调用,所以这里我们找到事务的通知,进入到invoke方法
这里会获取事务管理器
所以事务管理器也是事务的重要的配置
明天继续更新....