【发布时间】:2016-09-09 07:36:47
【问题描述】:
我需要在执行函数后执行任务。我为此使用了 Aspect。但我有些困惑。
我在 spring 服务中有一个函数 A()。
@Transactional(readOnly = false,
isolation = Isolation.DEFAULT,
propagation = Propagation.REQUIRED,
rollbackFor = {Exception.class})
void A() {
//Do Something
}
我在这个函数上有一个@Afterreturning 方面。
@AfterReturning(pointcut = "execution(Sevice.saverecord(..)) ")
public void processNotifications(JoinPoint jp) {}
我想知道这个切面是使用metod A() 的事务还是自动创建一个新事务。因为我没有在这个方面方法上定义任何事务。
我尝试在这两种方法中使用 TransactionAspectSupport.currentTransactionStatus().toString() 打印交易详情。我得到了两个不同的 ID。
谁能解释这是否意味着有两个交易,如果是,第二个交易来自哪里?
【问题讨论】:
标签: java spring hibernate transactions aspect