码迷,mamicode.com
首页 > 其他好文 > 详细

@Transactional注解

时间:2020-03-16 11:20:26      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:manager   应用   llb   影响   运行时异常   就会   名字空间   数据库操作   mail   

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,可以让事物在遇到非运行时异常时也回滚。

@Transactional注解

标签:manager   应用   llb   影响   运行时异常   就会   名字空间   数据库操作   mail   

原文地址:https://blog.51cto.com/13678728/2478759

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!