使用@Transactional时,明确rollbackFor属性是否必要?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1073个文字,预计阅读时间需要5分钟。
今天在看Spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有太多资料,包括公司的编码规范上也有提到这一点。
今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有许多资料,包括公司的java编码规范上也有提及到这一点。
不知道读者们有没想过这个问题,但我看完源码后,个人觉得是有必要的。见解不到位的话,希望读者能指明。
**异常:**如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常(检查时异常)。
那么spring默认会对如上的哪些异常进行回滚呢?
**答案:**RuntimeException、Error.
spring源码如下说明:
spring在执行方法抛出异常后,会调用completeTransactionAfterThrowing方法,也在该方法中会去判断并执行是回滚还是提交操作。
本文共计1073个文字,预计阅读时间需要5分钟。
今天在看Spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有太多资料,包括公司的编码规范上也有提到这一点。
今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有许多资料,包括公司的java编码规范上也有提及到这一点。
不知道读者们有没想过这个问题,但我看完源码后,个人觉得是有必要的。见解不到位的话,希望读者能指明。
**异常:**如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常(检查时异常)。
那么spring默认会对如上的哪些异常进行回滚呢?
**答案:**RuntimeException、Error.
spring源码如下说明:
spring在执行方法抛出异常后,会调用completeTransactionAfterThrowing方法,也在该方法中会去判断并执行是回滚还是提交操作。

