1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

Merge pull request #1371 from weixsun/Update-Spring事务总结

Update Spring事务总结.md
This commit is contained in:
Guide哥 2021-09-07 21:50:50 +08:00 committed by GitHub
commit 232ae9bf57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -513,7 +513,7 @@ InnoDB 存储引擎在 **分布式事务** 的情况下一般会用到 **SERIALI
所谓事务超时,就是指一个事务所允许执行的最长时间,如果超过该时间限制但事务还没有完成,则自动回滚事务。在 `TransactionDefinition` 中以 int 的值来表示超时时间,其单位是秒,默认值为-1。 所谓事务超时,就是指一个事务所允许执行的最长时间,如果超过该时间限制但事务还没有完成,则自动回滚事务。在 `TransactionDefinition` 中以 int 的值来表示超时时间,其单位是秒,默认值为-1。
#### 3.3.3. 事务只读属性 #### 3.3.4. 事务只读属性
```java ```java
package org.springframework.transaction; package org.springframework.transaction;
@ -545,7 +545,7 @@ public interface TransactionDefinition {
1. 如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持 SQL 执行期间的读一致性; 1. 如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持 SQL 执行期间的读一致性;
2. 如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询 SQL 必须保证整体的读一致性,否则,在前条 SQL 查询之后,后条 SQL 查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持 2. 如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询 SQL 必须保证整体的读一致性,否则,在前条 SQL 查询之后,后条 SQL 查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持
#### 3.3.4. 事务回滚规则 #### 3.3.5. 事务回滚规则
这些规则定义了哪些异常会导致事务回滚而哪些不会。默认情况下事务只有遇到运行期异常RuntimeException 的子类时才会回滚Error 也会导致事务回滚但是在遇到检查型Checked异常时不会回滚。 这些规则定义了哪些异常会导致事务回滚而哪些不会。默认情况下事务只有遇到运行期异常RuntimeException 的子类时才会回滚Error 也会导致事务回滚但是在遇到检查型Checked异常时不会回滚。
@ -601,7 +601,7 @@ public @interface Transactional {
} }
``` ```
**`@Transactional` 的常用配置参数总结(只列巨额 5 个我平时比较常用的):** **`@Transactional` 的常用配置参数总结(只列出了 5 个我平时比较常用的):**
| 属性名 | 说明 | | 属性名 | 说明 |
| :---------- | :------------------------------------------------------------------------------------------- | | :---------- | :------------------------------------------------------------------------------------------- |
@ -681,10 +681,17 @@ private void method1() {
## 4. Reference ## 4. Reference
3. [总结]Spring 事务管理中@Transactional 的参数:[http://www.mobabel.net/spring 事务管理中 transactional 的参数/](http://www.mobabel.net/spring事务管理中transactional的参数/) 1. [总结]Spring 事务管理中@Transactional 的参数:[http://www.mobabel.net/spring 事务管理中 transactional 的参数/](http://www.mobabel.net/spring事务管理中transactional的参数/)
4. Spring 官方文档:[https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html)
5. 《Spring5 高级编程》 2. Spring 官方文档:[https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html)
6. 透彻的掌握 Spring 中@transactional 的使用: [https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html](https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html)
7. Spring 事务的传播特性:[https://github.com/love-somnus/Spring/wiki/Spring 事务的传播特性](https://github.com/love-somnus/Spring/wiki/Spring事务的传播特性) 3. 《Spring5 高级编程》
8. [Spring 事务传播行为详解](https://segmentfault.com/a/1190000013341344) [https://segmentfault.com/a/1190000013341344](https://segmentfault.com/a/1190000013341344)
9. 全面分析 Spring 的编程式事务管理及声明式事务管理:[https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html](https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html) 4. 透彻的掌握 Spring 中@transactional 的使用: [https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html](https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html)
5. Spring 事务的传播特性:[https://github.com/love-somnus/Spring/wiki/Spring 事务的传播特性](https://github.com/love-somnus/Spring/wiki/Spring事务的传播特性)
6. [Spring 事务传播行为详解](https://segmentfault.com/a/1190000013341344) [https://segmentfault.com/a/1190000013341344](https://segmentfault.com/a/1190000013341344)
7. 全面分析 Spring 的编程式事务管理及声明式事务管理:[https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html](https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html)