异步方法执行踩坑记录
前提:为了解耦和解决一些业务问题,在流程审批功能中使用监听器来实现异步调用业务逻辑
问题:因为某个业务逻辑在整个事务未提交的情况下,在中间就会被监听器监测到并去执行之后的逻辑,但监听器需要查询事务开始时插入数据库的数据,由于事务未提交,查询结果为null,主线逻辑执行完而异步逻辑执行失败
主要代码:
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
//业务代码
}
});