Spring有事务同步器吃掉运行时异常,这里是弹簧代码 -
public static void invokeAfterCompletion(List<TransactionSynchronization> synchronizations, int completionStatus) {
if (synchronizations != null) {
for (TransactionSynchronization synchronization : synchronizations) {
try {
synchronization.afterCompletion(completionStatus);
}
catch (Throwable tsex) {
logger.error("TransactionSynchronization.afterCompletion threw exception", tsex);
}
}
}
}
有没有办法了解AfterComplete时抛出的异常?我考虑过像线程本地的解决方案,但spring是否提供了一种干净的处理方式? 任何人?
postCompletion方法检查是否已触发回滚并进行一些清理。如果清理因连接重置或网络问题等异常而失败,我想在我的代码中添加重试机制。由于postCompletion由第三方代码调用它抛出异常RollbackFailed。我希望捕获该异常并添加重试次数,因为释放资源对我来说很重要。 参考spring jira问题 - https://jira.spring.io/browse/SPR-12560