Java开发的事务

Java开发的事务

 

 代码来自https://blog.csdn.net/weixin_42950079/article/details/99674292

可以看出jdbc的一个事务有这么几个步骤:1.关闭sql自动提交;2.提交sql;3.提交事务,抛出异常回滚

Spring的@Transactional本质是做一个切面把上面这些事除了sql语句部分干了,然后开发只需要写sql代码即可

 Spring事务管理器底层参见https://blog.csdn.net/cccmercy/article/details/81584826

对于分布式事务,也可以自己写一个注解实现AOP:

1.接收需要组合在一起的数据源对应的事务管理器id

2.在执行业务方法之前,通过这些事务管理器,手动开启事务

3.执行业务方法

4.业务方法执行完毕之后,再使用这些事务管理器,手动提交事务

5.如果业务方法抛出异常:判断是否不需要回滚事务,如果不需要回滚,则提交事务;否则回滚

事实上,这也就是为什么分布式事务会有额外的中间件

上一篇:汉密尔顿函数


下一篇:Spring进阶(一)自定义IOC&AOP框架