声明式事务4
打开 Debug 日志看事务
<configuration><logger name="org.springframework.jdbc" level="DEBUG"/><logger name="org.springframework.transaction" level="DEBUG"/><root level="INFO"><appender class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern></encoder></appender></root>
</configuration>
重启 Tomcat,控制台会出现:
Creating new transaction with name [com.lib.service.BookService.borrowBook]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
Acquired Connection [HikariProxyConnection@12345678] for JDBC transaction
回滚时:
Initiating transaction rollback
Rolling back JDBC transaction
Releasing JDBC Connection
事务传播行为小实验
新建 BatchBorrowService
:
@Service
public class BatchBorrowService {@Autowiredprivate BookService bookService;// 外层事务@Transactionalpublic void batch(List<Integer> users) {for (int userId : users) {try {bookService.borrowBook(1, userId); // 内层 REQUIRED} catch (Exception e) {// 捕获异常,继续下一个System.out.println("user " + userId + " 失败,继续");}}}
}