当我们业务数据完成后,有时候需要向mq发送数据或者发送短信,需要等业务数据事务完成后做一些事情
public class text {
@Autowired
private ApplicationContext applicationContext;
public void login() {
//用户登录
System.out.println("用户登录===========");
//发送登录成功信息
applicationContext.publishEvent(new UserEvent("张三"));
//针对事务的不同时机做一些事情
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void beforeCommit(boolean readOnly) {
TransactionSynchronization.super.beforeCommit(readOnly);
}
@Override
public void beforeCompletion() {
TransactionSynchronization.super.beforeCompletion();
}
@Override
public void afterCommit() {
TransactionSynchronization.super.afterCommit();
}
@Override
public void afterCompletion(int status) {
TransactionSynchronization.super.afterCompletion(status);
}
});
}
}