spring的事务,详解注解@Transactional

Posted amunamuna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring的事务,详解注解@Transactional相关的知识,希望对你有一定的参考价值。

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。

Spring 事务管理分为编程式和声明式的两种方式。


编程式事务指的是通过编码方式实现事务,编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager


声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。


显然声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式。声明式事务管理使业务代码不受污染,一个普通的POJO对象,只要加上注解就可以获得完全的事务支持。和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等。

声明式事务有两种方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解

需要明确几点:
  默认配置下 Spring 只会回滚运行时、未检查异常(继承自 RuntimeException 的异常)或者 Error。
  @Transactional 注解只能应用到 public 方法才有效。

 

技术分享图片

 






以上是关于spring的事务,详解注解@Transactional的主要内容,如果未能解决你的问题,请参考以下文章

spring的事务,详解注解@Transactional

Spring声明式事务注解@Transactional详解

一文详解Spring事务注解的解析,这下你总懂了吧?

Spring事务详解

Java开发Spring之AOP详解(xml--注解->方法增强事务管理(声明事务的实现))

Spring 事务快速入门详解