@Transactional
(1)可以标注在类和方法上,也可以标注的定义的接口和接口方法上。
(2)若在接口上标注@Transactional注解,会留下这样的隐患:因为注解不能被继承,所以业务接口中标注的@Transactional注解会被业务实现类继承,所以可能会出现不启动事务的情况,所以Spring建议我们将@Transaction注解在是实现类上。
(3)在方法上的@Transactional注解会覆盖掉类上的@Transactional
@Transactional属性
属性 | 类型 | 描述 |
value | String | 可选的限定描述符,指定使用的事务管理器 |
propagation | enum:Propagation | 可选的事务传播行为设置 |
isolation | enum:Isolation | 可选的事务隔离级别设置 |
readOnly | boolean | 读写或者只读事务,默认读写 |
timeout | int(int seconds granularity) | 事务超时时间设置 |
rollbackFor | Class对象数组,必须继承自Throwable | 导致事务回滚的异常类数组 |
rollbackForClassName | 类名数组,必须继承自Throwable | 导致事务回滚的异常类名字数组 |
noRollbackFor | Class对象数组,必须继承自Throwable | 不会导致事务回滚的异常类数组 |
noRollbackForClassName | 类名数组,必须继承自Throwable | 不会导致事务回滚的异常类名字数组 |