SpringBoot多数据源AbstractRoutingDataSource解析
2022-10-15 15:00:57 2 举报
SpringBoot创建多个不同数据源开发的针对AbstractRoutingDataSource详细解析和实现思路。以此为基础可扩展出注解自动适配多DataSouce数据源、参数化手动适配多DataSouce数据源等的开发
作者其他创作
大纲/内容
类:AbstractRoutingDataSource
resolvedDataSources:结果数据源
客户端实现此方法,指定目标数据源Map集合的Key最终定义ResolveDataSourcesMap的keyObject determineCurrentLookupKey()
DS...
DS2
new DruidDataSourceWrapper()
是
targetDataSources:目标数据源
配置数据库属性:DataSourceProperties
return Datasource
return .getDataSource((String) dataSource)
否
DS1
dataSource instanceof DataSource
指定结果数据源DataSource实例:DataSource resolveSpecifiedDataSource(Object dataSource)
dataSource instanceof String
return
defaultTargetDataSource:目标默认数据源
返回lookKey键对应结果数据源Map的数据源:determineTargetDataSource()
lookupKey
Key:数据名
@ConfigurationProperties(\"spring.datasource.druid\")
return dataSource
方法
创建数据库:afterPropertiesSet()
afterPropertiesSet()
dataSourceLookup:名称找数据源的实现类
属性
Val:对应数据 源
resolvedDefaultDataSource:结果默认数据源
指定结果数据源对象Map集合的查找Key:DataSource resolveSpecifiedDataSource(Object lookupKey)
throw Exception
basicProperties.determineUsername()basicProperties.determinePassword()basicProperties.determineUrl()basicProperties.getDriverClassName()
0 条评论
下一页