spring 事务提交后触发事件
- 某些业务场景严格要求事务提交后,才能触发接口调用(如http接口等)
@Transactional(rollbackFor = Exception.class)
public void save(Demo demo){
demoMapper.insert(demo);
// 有活动的事务
if (TransactionSynchronizationManager.isActualTransactionActive()) {
try {
// 当前线程有活动的事务,事务提交后再发送通知
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
log.info(">> 事务提交了,发送消息通知");
messageNotifyService.push(...);
}
});
}catch (Exception e){
log.error("注册事务失败:"+e.getMessage(), e);
}
}
}
Spring事务提交后的自动事件触发与通知,
本文讨论了在Spring框架中如何确保事务提交后自动触发HTTP接口调用,并利用TransactionSynchronizationManager实现事务提交时的通知功能。作者展示了如何在@Transactional注解中处理异常并确保在事务完成后执行额外操作。
3718

被折叠的 条评论
为什么被折叠?



