@Transactional注解

1.作用简述br/>        作用由于业务需求,在**Service的方法A中使用一个for循环,每次循环里面的业务可能会发生异常,这个时候需要将循环内的所有数据库操作给回滚掉**,但又不能影响到之前循环里数据的更改,并且后面的循环里不发生异常的情况下也需要正常操作数据库。
**2.用法简述**
        为了保证事务的一致性,事务管理对企业应用是至关重要的。Sring支持编程式事务管理和声明式事务管理两种方式。
        编程式事务管理两种实现方式:1)TransactionTemplate;2)直接使用底层的PlatformTransactionManager。对于编程式事务管理,Spring推荐使用方式1)。
        声明式事务管理建立在AOP之上,其本质是对方法前后进行拦截,然后再目标方法开始之前创建一个或加入一个事务,在执行完目标方法之后,根据情况执行或回滚事务。声明式事务管理也有两种方式:1)基于tx和aop名字空间的xml配置文件;2)基于@Transactional注解。注解方式更简单易用。
3.Transactional注解使用说明
br/>        当作用于类上,该类的所有public方法都具有该事务属性。也可以**作用于方法级别上**。
        在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
        使用@Transactional如果不配置rollbackFor属性,那么事务只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。

上一篇:spring注解@Transactional 和乐观锁,悲观锁并发问题


下一篇:SpringBoot动态数据源与@Transactional