spring事务属性的五大器官!!!(一)

376 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本次话题将通过三篇博客对自己学习spring的事务属性的五大方面(学习资料☞《spring实战》)的笔记进行整理发布,如果问题,请多担待,如对您学习有所帮助,请点个赞👍吧,♥

摘要

本篇主要让我们来康康,spring事务属性的五大方面其中的“传播行为”这一方面进行具体的详述,

spring声明式事务

spring声明事务式边界的三种方式

  1. spring AOP 和TransactionProxyFactoryBean的代理Bean来实现声明式事务
  2. spring的tx命名空间
  3. @Transactional注解

spring事务属性之☞传播行为

传播行为定义了客户端和被调用方法之间的事务边界,spring定义了7中不同的传播行为

①:PROPAGATION_MANDATORY

表示在spring中定义的这个方法,必须在事务中才可以运行,如果当前事务不存在,那就要抛出一个异常

②:PROPAGATION_REQUIRED

表示当前方法必须运行在事务中,如果当前的事务存在,则会直接运行,如果不存在,就会启动一个新的事务

③: PROPAGATION_NESTED

表示如果当前已经存在一个事务,那么当前的这个方法就会嵌套在已经存在的事务中运行,嵌套的事务可以独立于当前事务进行单独地提交或回滚,如果当前事务不存在,那就会同②中的一样

④: PROPAGATION_NEVER

表示当前方法不应该在事务上下文中,如果当前正在有一个事务在运行,那么就会抛出异常

⑤:PROPAGATION_NOT_SUPPORTED

表示这个方法不应该在事务中运行,如果当前有事务在运行,那么这个方法就会挂起,直到这个事务运行完毕

注:如果使用JTATransactionManagement时,还需要去访问TransactionManagement

⑥:PROPAGATION_REQUIRED_NEW

表示这个方法必须运行在自己的事务中,如果在运行期间,又有一个新的事务进来,那么就会先将这个方法挂起,然后去执行新的事务,执行完之后再执行这个方法

⑦:PROPAGATION_SUPPORTS

表示当前的方法不需要事务上下文,但是如果存在当前事务的话,那么该方法会在这个事务中运行

发布所有博客均为本人学习笔记,如果错误误导了您,请麻烦指出,万分感激!!!