应用场景描述:
Spring 5+atomikos+JdbcTemplate+DynamicDataSource 多数据源动态切换
跟踪原代码,有如下发现:
在TransactionSynchronizationManager这个类中,
有一个resources。里面存的东西如图:
当事务开启时,事务里的相关资源都会在这里记录一份,在事务提交之后,后依次调用
TransactionSynchronizationManager 里面的unbindResource方法。
值得注意的是,resources里面的key, 存的是动态数据源的指针,假设事务中涉及两个数据源A和B,那么,在resources中存放的key只有一个