涨知识了!Spring 怎么在一个事务中开启另一个事务
Posted 架构之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了涨知识了!Spring 怎么在一个事务中开启另一个事务相关的知识,希望对你有一定的参考价值。
my.oschina.net/u/3441184/blog/893628
Spring项目,需要在一个事务中开启另一个事务。
@Service
public class ServiceA {
@Transactional
public void doSomething(){
向数据库中添加数据;
调用其他系统;
}
}
Propagation propagation() default Propagation.REQUIRED;
@Service
public class ServiceA {
@Transactional
public void doSomething(){
insert();
调用其他系统;
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void insert(){
向数据库中添加数据;
}
}
@Service
public class ServiceA {
@Autowired
private ServiceB serviceB;
@Transactional
public void doSomething(){
serviceB.insert();
调用其他系统;
}
}
@Service
public class ServiceB {
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void insert(){
向数据库中添加数据;
}
}
<aop:aspectj-autoproxy expose-proxy="true"/>
或者
<aop:config expose-proxy="true">
,并且在代码的调用中要求使用代理对象去调用即可:
((ServiceA ) AopContext.currentProxy()).insert();
最近热文
以上是关于涨知识了!Spring 怎么在一个事务中开启另一个事务的主要内容,如果未能解决你的问题,请参考以下文章