Transaction 标签一般写在什么位置?

一般加载service 或者加在具体的方法上

Transaction 事务回滚规则

spring的Transaction有三种回滚规则
1.rollbackFor

2.rollbackForClassName

3.readonly
只读,读取查询数据使用,默认为false

4.timeout
超过设置时间,自动回滚,默认值是-1

5.name
当在配置文件中有多个事务管理器,可以用name来指定多个

6.isolation
事务的隔离度,默认Default

7.propagation
事务传播行为,默认值为Required

总结:

只写这个Transation 标签不指定 回滚方法

  • 如果方法不是被public修饰的, 那么出现了异常不会回滚,那么就是说想要支持事务,那么这个方法必须被public修饰
  • 如果是方法A调用方法B, 方法B打了事务注解,但是A是使用this.B(),那么事务也不会回滚

事务回滚规则:

可以在@Transaction 注解后制定回滚规则

  1. noRollbackFor 指定不回滚
  2. rollBackFor 指定回滚
  3. RuntimeException 异常回滚

https://blog.csdn.net/qq_39213969/article/details/105532264