中山企业网站建设,fuzzz的wordpress模板,牡丹江,我国档案网站建设研究论文业务背景
业务那边想要统计下我们这边每天注册商户成功和失败的数量#xff0c;你看看怎么给他弄下这个功能
功能实现
TransactionSynchronizationManager.registerSynchronization#xff0c;发现这是spring事务提供的注册回调接口的方法。
在事务注解方法中#xff0c…业务背景
业务那边想要统计下我们这边每天注册商户成功和失败的数量你看看怎么给他弄下这个功能
功能实现
TransactionSynchronizationManager.registerSynchronization发现这是spring事务提供的注册回调接口的方法。
在事务注解方法中通过该方法注册事务回调接口后spring会在事务提交/回滚前后调用注册的回调接口的对应方法方法如下 suspend在spring开启新事务获取connection之前会调用resume开启新事务失败时会调用flush没调用beforeCommit事务提交前会调用beforeCompletion事务提交前会调用在beforeCommit之后afterCommit事务提交后会调用afterCompletion事务提交后会调用在afterCommit之后
了解TransactionSynchronization的用法后业务代码如下
Transactional(rollbackFor Exception.class)
public Integer registerCustomer(LvmsDelegateDTO newDelegateDTO) {TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {Overridepublic void afterCompletion(int status) {if (TransactionSynchronization.STATUS_COMMITTED status) {lvmsDelegateBO.insert();} else if (TransactionSynchronization.STATUS_ROLLED_BACK status) {lvmsDelegateBO.insert();}}});return lvmsDelegateBO.insert(newDelegateDTO);} 如果status为STATUS_COMMITTED表示方法正常事务已提交需要插入成功记录如果status为STATUS_ROLLED_BACK则说明发生了异常事务已回滚则插入失败记录完美