Package org.aoju.bus.starter.jdbc
Class DynamicDataSource
java.lang.Object
org.springframework.jdbc.datasource.AbstractDataSource
org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
org.aoju.bus.starter.jdbc.DynamicDataSource
- All Implemented Interfaces:
Wrapper,CommonDataSource,DataSource,org.springframework.beans.factory.InitializingBean
public class DynamicDataSource
extends org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
多数据源支持
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.springframework.jdbc.datasource.AbstractDataSource
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddDataSource(String key, DataSource dataSource) 动态增加数据源void在获取key的集合,目的只是为了添加一些告警日志booleancontainsKey(String key) 判断指定DataSrouce当前是否存在protected ObjectAbstractRoutingDataSource 抽象类实现方法, 即获取当前线程数据源的key获取默认数据源static DynamicDataSource单例方法voidsetTargetDataSources(Map<Object, Object> map) Methods inherited from class org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
determineTargetDataSource, getConnection, getConnection, getResolvedDataSources, getResolvedDefaultDataSource, isWrapperFor, resolveSpecifiedDataSource, resolveSpecifiedLookupKey, setDataSourceLookup, setDefaultTargetDataSource, setLenientFallback, unwrapMethods inherited from class org.springframework.jdbc.datasource.AbstractDataSource
getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriterMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.sql.CommonDataSource
createShardingKeyBuilderMethods inherited from interface javax.sql.DataSource
createConnectionBuilder
-
Constructor Details
-
DynamicDataSource
public DynamicDataSource()
-
-
Method Details
-
getInstance
单例方法- Returns:
- the DynamicDataSource
-
addDataSource
动态增加数据源- Parameters:
key- 数据源keydataSource- 数据源信息
-
setTargetDataSources
- Overrides:
setTargetDataSourcesin classorg.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
-
determineCurrentLookupKey
AbstractRoutingDataSource 抽象类实现方法, 即获取当前线程数据源的key- Specified by:
determineCurrentLookupKeyin classorg.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource- Returns:
- 当前数据源key
-
afterPropertiesSet
public void afterPropertiesSet()在获取key的集合,目的只是为了添加一些告警日志- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Overrides:
afterPropertiesSetin classorg.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
-
containsKey
判断指定DataSrouce当前是否存在- Parameters:
key- 数据源key- Returns:
- the true/false
-
getDefaultDataSource
获取默认数据源- Returns:
- the dataSource
-