简述网站建设的基本流程图,wordpress 语言包修改,到哪个网站找内控制度建设,餐饮o2o 网站建设记录下spring的事件机制使用过程中的问题#xff1b;以下为了方便A方法中执行数据库操作#xff0c;并发送事件#xff1b;事件接收处理器为B方法#xff1b;EventListener注解添加在B方法上#xff1b;
1.EventListener
正常情况#xff0c;B和A为同一个事务#xff…记录下spring的事件机制使用过程中的问题以下为了方便A方法中执行数据库操作并发送事件事件接收处理器为B方法EventListener注解添加在B方法上
1.EventListener
正常情况B和A为同一个事务B中读取到的为A中未提交的事务数据B中抛出异常会导致A中的事务回滚
2.EventListenerAsync
A和B是两个事务之间不会有任何关联B中方法会立刻执行所以拿到的数据看当时的数据库数据
3.TransactionalEventListener
默认的阶段是TransactionPhase.AFTER_COMMIT
会在A方法执行完成之后再执行B方法因为是commit之后所以B中抛出异常A中不会回滚
读取到的也是A中事务的数据是一个事务
4.TransactionalEventListenerphase TransactionPhase.BEFORE_COMMIT
提交之前所以抛出异常会影响A中事务的提交但是读取的数据是A中的数据是一样的
5.AsyncTransactionalEventListener
不区分哪个阶段但是是同一个事务中的数据而且抛出异常也不会影响A中事务的回滚
注TransactionalEventListener的情况下不管有没有async如果A中发生异常B是不会执行的可以理解为回调机制只有A中执行成功了B才可以开始执行而且B不会立即执行都是A执行之后才开始这跟EventListener不同EventListener的情况下加不加Async,B都是立即执行