继承AbstractAutoProxyCreator,spring自动对Datasource实现代理,当然你也可以手动代理
我们看看SeataAutoDataSourceProxyAdvice,如果对DataSource的操作,都转换成对DataSourceProxy的操作,shardingjdbc也是通过自定义ShardingDataSource实现的
这里执行insert语句,适配出MySQLInsertExecutor
这里主要set了xid和全局锁标识
这里设置非自动提交
我们先看看executeAutoCommitFalse这个方法,执行业务sql
这个方法主要生成undo log
这个processGlobalTransactionCommit方法,主要做两件事,一是向tc注册分支事务,二是提交业务sql和undo sql。
我们看下注册分支事务的大概流程