nameMap = new HashMap<>();
private final DsProcessor dsProcessor;
+ /**
+ * init
+ *
+ * @param dsProcessor dsProcessor
+ */
public DynamicDatasourceNamedInterceptor(DsProcessor dsProcessor) {
this.dsProcessor = dsProcessor;
}
@@ -138,4 +143,4 @@ public class DynamicDatasourceNamedInterceptor implements MethodInterceptor {
}
return dsKey;
}
-}
+}
\ No newline at end of file
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/aop/DynamicLocalTransactionInterceptor.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/aop/DynamicLocalTransactionInterceptor.java
index 82d39d9..868c641 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/aop/DynamicLocalTransactionInterceptor.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/aop/DynamicLocalTransactionInterceptor.java
@@ -26,6 +26,8 @@ import org.aopalliance.intercept.MethodInvocation;
import java.lang.reflect.Method;
/**
+ * Dynamic DataSource Transaction Interceptor
+ *
* @author funkye
*/
@Slf4j
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/DefaultDataSourceCreator.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/DefaultDataSourceCreator.java
index 7f1ad19..fe5a8fd 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/DefaultDataSourceCreator.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/DefaultDataSourceCreator.java
@@ -66,6 +66,12 @@ public class DefaultDataSourceCreator {
private DataSourceInitEvent dataSourceInitEvent;
+ /**
+ * 创建数据源
+ *
+ * @param dataSourceProperty 数据源参数
+ * @return 数据源
+ */
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
DataSourceCreator dataSourceCreator = null;
for (DataSourceCreator creator : this.creators) {
@@ -96,6 +102,12 @@ public class DefaultDataSourceCreator {
return wrapDataSource(dataSource, dataSourceProperty);
}
+ /**
+ * 执行初始化脚本
+ *
+ * @param dataSource 数据源
+ * @param dataSourceProperty 数据源参数
+ */
private void runScrip(DataSource dataSource, DataSourceProperty dataSourceProperty) {
DatasourceInitProperties initProperty = dataSourceProperty.getInit();
String schema = initProperty.getSchema();
@@ -111,6 +123,13 @@ public class DefaultDataSourceCreator {
}
}
+ /**
+ * 包装数据源
+ *
+ * @param dataSource 数据源
+ * @param dataSourceProperty 数据源参数
+ * @return
+ */
private DataSource wrapDataSource(DataSource dataSource, DataSourceProperty dataSourceProperty) {
String name = dataSourceProperty.getPoolName();
DataSource targetDataSource = dataSource;
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/jndi/JndiDataSourceCreator.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/jndi/JndiDataSourceCreator.java
index a0e6050..f95ff0f 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/jndi/JndiDataSourceCreator.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/creator/jndi/JndiDataSourceCreator.java
@@ -31,16 +31,16 @@ public class JndiDataSourceCreator implements DataSourceCreator {
private static final JndiDataSourceLookup LOOKUP = new JndiDataSourceLookup();
+ /**
+ * 创建JNDI数据源
+ *
+ * @param jndiName jndi数据源名称
+ * @return 数据源
+ */
public DataSource createDataSource(String jndiName) {
return LOOKUP.getDataSource(jndiName);
}
- /**
- * 创建JNDI数据源
- *
- * @param dataSourceProperty jndi数据源名称
- * @return 数据源
- */
@Override
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
return createDataSource(dataSourceProperty.getJndiName());
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/AbstractDataSource.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/AbstractDataSource.java
index b7df1f1..d3d2777 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/AbstractDataSource.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/AbstractDataSource.java
@@ -20,11 +20,16 @@ import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.logging.Logger;
+/**
+ * Abstract base class for Spring's {@link javax.sql.DataSource}
+ */
public abstract class AbstractDataSource implements DataSource {
/**
* Returns 0, indicating the default system timeout is to be used.
+ *
+ * @return 0
*/
@Override
public int getLoginTimeout() throws SQLException {
@@ -32,7 +37,8 @@ public abstract class AbstractDataSource implements DataSource {
}
/**
- * Setting a login timeout is not supported.
+ * @param timeout ignored
+ * Throws {@link UnsupportedOperationException} when called.
*/
@Override
public void setLoginTimeout(int timeout) throws SQLException {
@@ -41,6 +47,9 @@ public abstract class AbstractDataSource implements DataSource {
/**
* LogWriter methods are not supported.
+ *
+ * @return not supported
+ *
Throws {@link UnsupportedOperationException} when called.
*/
@Override
public PrintWriter getLogWriter() {
@@ -49,6 +58,7 @@ public abstract class AbstractDataSource implements DataSource {
/**
* LogWriter methods are not supported.
+ *
Throws {@link UnsupportedOperationException} when called.
*/
@Override
public void setLogWriter(PrintWriter pw) throws SQLException {
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/GroupDataSource.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/GroupDataSource.java
index 3259661..9b91b51 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/GroupDataSource.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/ds/GroupDataSource.java
@@ -31,6 +31,9 @@ import java.util.concurrent.ConcurrentHashMap;
@Data
public class GroupDataSource {
+ /**
+ * 组名
+ */
private String groupName;
private DynamicDataSourceStrategy dynamicDataSourceStrategy;
@@ -47,6 +50,7 @@ public class GroupDataSource {
*
* @param ds the name of the datasource
* @param dataSource datasource
+ * @return the previous value associated with ds, or null if there was no mapping for ds.
*/
public DataSource addDatasource(String ds, DataSource dataSource) {
return dataSourceMap.put(ds, dataSource);
@@ -59,14 +63,29 @@ public class GroupDataSource {
return dataSourceMap.remove(ds);
}
+ /**
+ * determineDsKey
+ *
+ * @return the name of the datasource
+ */
public String determineDsKey() {
return dynamicDataSourceStrategy.determineKey(new ArrayList<>(dataSourceMap.keySet()));
}
+ /**
+ * determineDataSource
+ *
+ * @return the datasource
+ */
public DataSource determineDataSource() {
return dataSourceMap.get(determineDsKey());
}
+ /**
+ * size of this group
+ *
+ * @return the size of this group
+ */
public int size() {
return dataSourceMap.size();
}
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/CannotFindDataSourceException.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/CannotFindDataSourceException.java
index 5044107..9b72ce6 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/CannotFindDataSourceException.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/CannotFindDataSourceException.java
@@ -23,11 +23,22 @@ package com.baomidou.dynamic.datasource.exception;
*/
public class CannotFindDataSourceException extends RuntimeException {
+ /**
+ * 构造方法
+ *
+ * @param message 异常信息
+ */
public CannotFindDataSourceException(String message) {
super(message);
}
+ /**
+ * 构造方法
+ *
+ * @param message 异常信息
+ * @param cause 异常
+ */
public CannotFindDataSourceException(String message, Throwable cause) {
super(message, cause);
}
-}
+}
\ No newline at end of file
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/TransactionException.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/TransactionException.java
index 36a1210..1bec63a 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/TransactionException.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/exception/TransactionException.java
@@ -15,12 +15,28 @@
*/
package com.baomidou.dynamic.datasource.exception;
+/**
+ * 事务异常
+ *
+ * @author Hzh
+ */
public class TransactionException extends RuntimeException {
+ /**
+ * 构造
+ *
+ * @param message 消息
+ */
public TransactionException(String message) {
super(message);
}
+ /**
+ * 构造
+ *
+ * @param message 消息
+ * @param cause 异常
+ */
public TransactionException(String message, Throwable cause) {
super(message, cause);
}
-}
+}
\ No newline at end of file
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/plugin/MasterSlaveAutoRoutingPlugin.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/plugin/MasterSlaveAutoRoutingPlugin.java
index 2e6108f..50842cf 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/plugin/MasterSlaveAutoRoutingPlugin.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/plugin/MasterSlaveAutoRoutingPlugin.java
@@ -26,9 +26,7 @@ import org.apache.ibatis.mapping.SqlCommandType;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
-import org.springframework.beans.factory.annotation.Autowired;
-import javax.sql.DataSource;
import java.util.Properties;
/**
@@ -44,9 +42,6 @@ import java.util.Properties;
@Slf4j
public class MasterSlaveAutoRoutingPlugin implements Interceptor {
- @Autowired
- protected DataSource dynamicDataSource;
-
@Override
public Object intercept(Invocation invocation) throws Throwable {
Object[] args = invocation.getArgs();
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsProcessor.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsProcessor.java
index 7b3bfdc..35a04bb 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsProcessor.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsProcessor.java
@@ -18,13 +18,23 @@ package com.baomidou.dynamic.datasource.processor;
import org.aopalliance.intercept.MethodInvocation;
/**
+ * 数据源处理器
+ *
* @author TaoYu
* @since 2.5.0
*/
public abstract class DsProcessor {
+ /**
+ * 下一个执行器
+ */
private DsProcessor nextProcessor;
+ /**
+ * 设置下一个执行器
+ *
+ * @param dsProcessor 执行器
+ */
public void setNextProcessor(DsProcessor dsProcessor) {
this.nextProcessor = dsProcessor;
}
@@ -70,4 +80,4 @@ public abstract class DsProcessor {
* @return 数据源名称
*/
public abstract String doDetermineDatasource(MethodInvocation invocation, String key);
-}
+}
\ No newline at end of file
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor.java
index e37a79f..03c6c36 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor.java
@@ -30,6 +30,8 @@ import org.springframework.expression.spel.support.StandardEvaluationContext;
import java.lang.reflect.Method;
/**
+ * SpEL表达式处理器
+ *
* @author TaoYu
* @since 2.5.0
*/
@@ -84,10 +86,20 @@ public class DsSpelExpressionProcessor extends DsProcessor {
return value == null ? null : value.toString();
}
+ /**
+ * 设置解析上下文
+ *
+ * @param parserContext 解析上下文
+ */
public void setParserContext(ParserContext parserContext) {
this.parserContext = parserContext;
}
+ /**
+ * 设置bean解析器
+ *
+ * @param beanResolver bean解析器
+ */
public void setBeanResolver(BeanResolver beanResolver) {
this.beanResolver = beanResolver;
}
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractDataSourceProvider.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractDataSourceProvider.java
index 55d3dd4..2dfa180 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractDataSourceProvider.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractDataSourceProvider.java
@@ -33,6 +33,12 @@ public abstract class AbstractDataSourceProvider implements DynamicDataSourcePro
private final DefaultDataSourceCreator defaultDataSourceCreator;
+ /**
+ * 创建数据源
+ *
+ * @param dataSourcePropertiesMap 数据源参数Map
+ * @return 数据源Map
+ */
protected Map createDataSourceMap(
Map dataSourcePropertiesMap) {
Map dataSourceMap = new HashMap<>(dataSourcePropertiesMap.size() * 2);
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractJdbcDataSourceProvider.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractJdbcDataSourceProvider.java
index 24e0e36..fee3627 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractJdbcDataSourceProvider.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/AbstractJdbcDataSourceProvider.java
@@ -53,10 +53,27 @@ public abstract class AbstractJdbcDataSourceProvider extends AbstractDataSourceP
*/
private final String password;
+ /**
+ * 通过默认数据源创建器创建数据源
+ *
+ * @param defaultDataSourceCreator 默认数据源创建器
+ * @param url 数据源url
+ * @param username 用户名
+ * @param password 密码
+ */
public AbstractJdbcDataSourceProvider(DefaultDataSourceCreator defaultDataSourceCreator, String url, String username, String password) {
this(defaultDataSourceCreator, null, url, username, password);
}
+ /**
+ * 通过默认数据源创建器创建数据源
+ *
+ * @param defaultDataSourceCreator 默认数据源创建器
+ * @param driverClassName 驱动类名
+ * @param url 数据源url
+ * @param username 用户名
+ * @param password 密码
+ */
public AbstractJdbcDataSourceProvider(DefaultDataSourceCreator defaultDataSourceCreator, String driverClassName, String url, String username, String password) {
super(defaultDataSourceCreator);
this.driverClassName = driverClassName;
@@ -65,6 +82,11 @@ public abstract class AbstractJdbcDataSourceProvider extends AbstractDataSourceP
this.password = password;
}
+ /**
+ * 关闭资源
+ *
+ * @param con 资源
+ */
private static void closeResource(AutoCloseable con) {
if (con != null) {
try {
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/YmlDynamicDataSourceProvider.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/YmlDynamicDataSourceProvider.java
index b8226a1..91ce728 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/YmlDynamicDataSourceProvider.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/provider/YmlDynamicDataSourceProvider.java
@@ -36,6 +36,12 @@ public class YmlDynamicDataSourceProvider extends AbstractDataSourceProvider {
*/
private final Map dataSourcePropertiesMap;
+ /**
+ * 构造函数
+ *
+ * @param defaultDataSourceCreator 默认数据源创建器
+ * @param dataSourcePropertiesMap 数据源参数
+ */
public YmlDynamicDataSourceProvider(DefaultDataSourceCreator defaultDataSourceCreator, Map dataSourcePropertiesMap) {
super(defaultDataSourceCreator);
this.dataSourcePropertiesMap = dataSourcePropertiesMap;
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/toolkit/DynamicDataSourceContextHolder.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/toolkit/DynamicDataSourceContextHolder.java
index 7766113..d497f33 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/toolkit/DynamicDataSourceContextHolder.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/toolkit/DynamicDataSourceContextHolder.java
@@ -63,6 +63,7 @@ public final class DynamicDataSourceContextHolder {
*
*
* @param ds 数据源名称
+ * @return 数据源名称
*/
public static String push(String ds) {
String dataSourceStr = StringUtils.isEmpty(ds) ? "" : ds;
@@ -93,4 +94,4 @@ public final class DynamicDataSourceContextHolder {
public static void clear() {
LOOKUP_KEY_HOLDER.remove();
}
-}
+}
\ No newline at end of file
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/AtomikosTransactionFactory.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/AtomikosTransactionFactory.java
index 04af6bb..2ef3802 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/AtomikosTransactionFactory.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/AtomikosTransactionFactory.java
@@ -27,7 +27,6 @@ import javax.sql.DataSource;
* Atomikos事务适配-多数据源切换
*
* @author jiazhifeng
- * @date 2023/03/02 10:20
*/
public class AtomikosTransactionFactory extends SpringManagedTransactionFactory {
diff --git a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/ConnectionFactory.java b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/ConnectionFactory.java
index 866d7ae..eabca9f 100644
--- a/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/ConnectionFactory.java
+++ b/dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/tx/ConnectionFactory.java
@@ -31,7 +31,9 @@ import java.util.concurrent.ConcurrentHashMap;
* @author funkye zp
*/
public class ConnectionFactory {
-
+ /**
+ * connection holder
+ */
private static final ThreadLocal