使用@Transactional时,明确rollbackFor属性是否必要?

2026-05-28 02:380阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1073个文字,预计阅读时间需要5分钟。

使用@Transactional时,明确rollbackFor属性是否必要?

今天在看Spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有太多资料,包括公司的编码规范上也有提到这一点。

今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有许多资料,包括公司的java编码规范上也有提及到这一点。

不知道读者们有没想过这个问题,但我看完源码后,个人觉得是有必要的。见解不到位的话,希望读者能指明。

**异常:**如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常(检查时异常)。

使用@Transactional时,明确rollbackFor属性是否必要?

那么spring默认会对如上的哪些异常进行回滚呢?

**答案:**RuntimeException、Error.

spring源码如下说明:

​ spring在执行方法抛出异常后,会调用​​completeTransactionAfterThrowing​​方法,也在该方法中会去判断并执行是回滚还是提交操作。

阅读全文

本文共计1073个文字,预计阅读时间需要5分钟。

使用@Transactional时,明确rollbackFor属性是否必要?

今天在看Spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有太多资料,包括公司的编码规范上也有提到这一点。

今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有许多资料,包括公司的java编码规范上也有提及到这一点。

不知道读者们有没想过这个问题,但我看完源码后,个人觉得是有必要的。见解不到位的话,希望读者能指明。

**异常:**如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常(检查时异常)。

使用@Transactional时,明确rollbackFor属性是否必要?

那么spring默认会对如上的哪些异常进行回滚呢?

**答案:**RuntimeException、Error.

spring源码如下说明:

​ spring在执行方法抛出异常后,会调用​​completeTransactionAfterThrowing​​方法,也在该方法中会去判断并执行是回滚还是提交操作。

阅读全文