- 创立一个 ComposeDataSource bean, 实现 spring 的 AbstractRoutingDataSource,并 exclude spring AutoDatabaseConfiguration。
- 在 ComposeDataSource 初始化办法里,初始化的多数据源,并设置到 DataSourceMap 中,其中 key 为数据源 id,value 为数据源实例。
- 执行数据库操作的办法上应用自定义注解,指定数据源 id。
- 应用 aspect,具体实现办法应用 aspectj 或者 sping aspect, 参考 @Async 文章,通过 id 查问数据源,并配置到 localThread。
- 执行数据库操作的办法时,调用 ComposeDataSource 的 getConnect 办法,从 localThread 取得理论数据源。