在使用注解模式是不需要配置文件,也不需要配置事务配置类或者方法,只需要使用“@Transcation”注解引入到相对应的位置即可实现事务回滚功能。
@Transactional 是声明式事务管理 编程中使用的注解
添加的位置:
接口实现类或接口实现方法上,而不是接口类中
访问权限:public 的方法才起作用
@Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解
事务的传播行为:
使用事务遇到的问题:
1.在Service层抛出Exception,在Controller层捕获,那如果在Service中有异常,那会事务回滚吗?
根据官方文档:By default checked exceptions do not result in the transactional interceptor marking the transaction for rollback and instances of RuntimeException and its subclasses do,也就是说如果是编译时异常不会自动回滚,如果是运行时异常,那会自动回滚!