在某些特定的业务场景下,我们可能需要在事务成功提交之后,再做某些操作,而不能将这些操作放在事务代码中,事务还未提交就已经执行了,那这种情况之下,spring提供的TransactionalEventListener就会派上用场了。
默认是在当前事务提交完(TransactionPhase phase() default TransactionPhase.AFTER_COMMIT;) 再进行事件处理;若整个事务存在异常,事件将不会被处理。
在当前线程没有事务(@Transactional)的情况下,且@TransactionalEventListener(fallbackExecution为false)时,该事件不会被处理。