graph TB
A[源码入口spring.factories] --> SeataAutoConfiguration --> GT{GlobalTransactionScanner}
GT --> D["实现InitializingBean接口实现afterPropertiesSet()"] --> F{"initClient()"}
F --> IT(init TM)
F --> IR(init RM)
GT --> H["继承AbstractAutoProxyCreator重写wrapIfNecessary()"] --> I["GlobalTransactionalInterceptor.invoke()"]
U((用户)) --> I --> IH["GlobalTransactionalInterceptor.handleGlobalTransaction(methodInvocation, transactional)构建事务信息"]
IH --> TE["transactionalTemplate.execute()"] --> BT["beginTransaction(txInfo, tx)开启事务"]
BT --> BE["business.execute()执行业务"] --> CT["commitTransaction(tx)提交事务"]
BE --> CR["rollbackTransaction(tx, originalException)回滚事务"]
A --> SeataDataSourceAutoConfiguration --> SeataAutoDataSourceProxyCreator