@Transactional事务失效情形
# private修饰的方式,spring无法生成动态代理
# 没有被spring管理。类不会被加载bean,自然事务失效。
# 数据库本身不支持 MySQL的 Myisam
# 事务传播行为为 非事务方式 PROPAGATION_NOT_SUPPORIED
# 数据源没有配置数据管理器transactionManager
# 异常被try...catch捕获未被抛出
# 抛出非RuntimeException 异常 rollback指定异常
# 方法的直接调用 (或被注入的service的直接调用。该情况的@Transactional才生成代理)
# 新开启线程。线程之间的数据库连接不共享?spring实现事务的原理是通过ThreadLocal将数据库绑定当前线程。
参考博客:
https://blog.csdn.net/CSDN_WYL2016/article/details/106767583
https://www.w3cschool.cn/article/92067520.html#:~:text=%40Transactional 只能用于 public 的方法上,否则事务不会失效,如果要用在非,public 方法上,可以开启 AspectJ 代理模式。
浙公网安备 33010602011771号