赞
踩
Spring boot
的事务Spring boot
的事务一直表现一些奇怪的特点,现在一一列举一下,留作参照。
@Transactional
注解不生效事务不生效的原因有很多,其他的都可以理解,但有一个确实不可理喻。当 @Service
第一个方法没有使用 @Transactional
注解时,后续调用的方法即使使用 @Transactional
注解。事务也不会开启。
@Service
注解类下的不同 @Transactional
不能同时生效这是spring 事务的奇怪特性。比如我要在 catch
里执行一些事务方法(关闭订单等。),我需要使用 @Transactional(propagation = Propagation.REQUIRES_NEW)
开启一个独立事务,避免被主事务回滚。然而,不行!至少你不能写在同一个 Class
类里。你必须在另一个 Class
里的方法加入 @Transactional(propagation = Propagation.REQUIRES_NEW)
才能生效。
原因:同一个类的的方法调用不是使用spring的代理调用,而是类似于 this.xxx
, 这个是类方法本身的调用无法使用事务aop
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。