Skip to content

Commit 3eb7a4e

Browse files
committed
Update 05Spring AOP的高级应用.md
1 parent 5e0be9e commit 3eb7a4e

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

javaframework/spring/第七节课/05Spring AOP的高级应用.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,6 @@ BookService.java
976976
```java
977977
package com.mashibing.service;
978978

979-
import com.mashibing.dao.BookDao;
980979
import org.springframework.beans.factory.annotation.Autowired;
981980
import org.springframework.stereotype.Service;
982981
import org.springframework.transaction.annotation.Isolation;
@@ -1019,7 +1018,6 @@ MulService.java
10191018
```java
10201019
package com.mashibing.service;
10211020

1022-
import com.mashibing.bean.Book;
10231021
import org.springframework.beans.factory.annotation.Autowired;
10241022
import org.springframework.stereotype.Service;
10251023
import org.springframework.transaction.annotation.Transactional;
@@ -1301,11 +1299,11 @@ public class BookService {
13011299
总结:
13021300

13031301
```tex
1304-
1、事务传播级别是REQUIRED,当save()被调用时(假定被另一类中commit()调用),如果save()中的代码抛出异常,即便被捕获,commit()中的其他代码都会roll back
1302+
1、事务传播级别是REQUIRED,当checkout()被调用时(假定被另一类中commit()调用),如果checkout()中的代码抛出异常,即便被捕获,commit()中的其他代码都会roll back
13051303
1306-
2、是REQUIRES_NEW,如果save()中的代码抛出异常,并且被捕获,commit()中的其他代码不会roll back;如果commit()中的其他代码抛出异常,而且没有捕获,不会导致save()回滚
1304+
2、是REQUIRES_NEW,如果checkout()中的代码抛出异常,并且被捕获,commit()中的其他代码不会roll back;如果commit()中的其他代码抛出异常,而且没有捕获,不会导致checkout()回滚
13071305
1308-
3、是NESTED,如果save()中的代码抛出异常,并且被捕获,commit()中的其他代码不会roll back;如果commit()中的其他代码抛出异常,而且没有捕获,会导致save()回滚
1306+
3、是NESTED,如果checkout()中的代码抛出异常,并且被捕获,commit()中的其他代码不会roll back;如果commit()中的其他代码抛出异常,而且没有捕获,会导致checkout()回滚
13091307
13101308
PROPAGATION_REQUIRES_NEW 启动一个新的, 不依赖于环境的 "内部" 事务. 这个事务将被完全 commited 或 rolled back 而不依赖于外部事务, 它拥有自己的隔离范围, 自己的锁, 等等. 当内部事务开始执行时, 外部事务将被挂起, 内务事务结束时, 外部事务将继续执行.
13111309
另一方面, PROPAGATION_NESTED 开始一个 "嵌套的" 事务, 它是已经存在事务的一个真正的子事务. 嵌套事务开始执行时, 它将取得一个 savepoint. 如果这个嵌套事务失败, 我们将回滚到此 savepoint. 潜套事务是外部事务的一部分, 只有外部事务结束后它才会被提交.

0 commit comments

Comments
 (0)