引入Transactional
时间: 2023-10-28 20:59:33 浏览: 96
在Spring中,引入@Transactional注解可以用于定义事务的传播特性。其中,常用的属性包括:
- propagation=Propagation.REQUIRED:如果有事务,则加入事务,如果没有事务,则创建一个新的事务(默认情况下)。
- propagation=Propagation.NOT_SUPPORTED:容器不为这个方法开启事务。
- propagation=Propagation.REQUIRES_NEW:不管是否存在事务,都创建一个新的事务,原来的事务挂起,新的事务执行完毕后,继续执行老的事务。
- propagation=Propagation.MANDATORY:必须在一个已有的事务中执行,否则抛出异常。
- propagation=Propagation.NEVER:必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)。
- propagation=Propagation.SUPPORTS:如果其他bean调用这个方法,在其他bean中声明事务,则使用事务;如果其他bean没有声明事务,则不使用事务。
通过在方法上添加@Transactional注解,可以方便地定义事务的传播特性,从而实现对业务逻辑的事务管理。
在Spring中,通过advisor.setAdvice(transactionInterceptor())引入TransactionInterceptor来保持事务属性和事务管理器。具体实现中,TransactionInterceptor会设置事务的属性来源和事务管理器。
引入@Transactional注解的目的是为了简化事务的提交和回滚操作,使开发者能够专注于业务逻辑的开发。使用@Transactional注解可以避免每次编写事务提交和回滚的繁琐逻辑,让开发者更加聚焦于业务的实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文