@Transactional 学习

1.spring声明式事务 注解. 加上这个操作数据库的方法就自动配置事务,失败自动回滚等.

不必自己配置事务,不必把事务管理冗杂到逻辑代码里.

2.底层逻辑是,aop+动态代理,生成一个代理对象,调用事务拦截器

TransactionInterceptor 拦截器把自动提交关了,然后等接口执行完后,在commit或rollback。

本质就是通过拦截器关闭自动提交的标记

调用链路是:

代理对象 -> TransactionInterceptor -> 你的业务方法 -> 异常处理

3.失效的原因就是没生成代理对象,直接调用了业务方法。

1.同一个类中的方法调用,直接通过this调用了,因为对象是创建好的。

2.final方法,Spring无法为final方法创建代理

3.继承,子类覆盖了父类中被@Transactional注解的方法,然后通过super调用父类的方法

 

posted @   了悟  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示