SpringBoot 项目,通过引入seata-spring-boot-starter来接入 Seata,Seata 的能力会通过 SpringBoot 的自动装配机制来引入。在学习的时候是梳理有什么强大的、科技感十足的能力,但在试点的时候则更多考虑的是有哪些安保机制,比如通过什么开关来启停某某功能,以保护程序。今天就梳理有什么安保机制,划清能力边界,让使用者不必太过担心;生产中安全永远是第一的嘛。

第二部分若真不熟悉,看不懂可跳过进入第三部分。
Pom 依赖
- <dependency>
- <groupId>io.seata</groupId>
- <artifactId>seata-spring-boot-starter</artifactId>
- <version>${seata.version}</version>
- </dependency>
- 复制代码
梳理自动装配类,直接从seata-spring-boot-starter中找文件spring.factories,其中有以下自动装配类:
- # Auto Configure
- org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- io.seata.spring.boot.autoconfigure.SeataDataSourceAutoConfiguration,\
- io.seata.spring.boot.autoconfigure.SeataAutoConfiguration,\
- io.seata.spring.boot.autoconfigure.HttpAutoConfiguration,\
- io.seata.spring.boot.autoconfigure.SeataSagaAutoConfiguration
- 复制代码
1) SeataDataSourceAutoConfiguration
Seata 的 AT 和 AX 模式是基于数据源代理实现的,SeataDataSourceAutoConfiguration 中自动对数据源做了代理,不用使用者手动实现代理。
2) SeataAutoConfiguration
GlobalTransactionScanner,注入到容器中,其内部做 2 件事情
Bean,对添加了全局事务注解的类(@GlobalTra