feat: add creator module

This commit is contained in:
TaoYu 2023-05-09 17:55:08 +08:00
parent 97869a5172
commit 4f72018dd4
41 changed files with 152 additions and 143 deletions

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource</artifactId>
<version>4.0.0</version>
</parent>
<artifactId>dynamic-datasource-creator</artifactId>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-creator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java7</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jdbc</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@ -15,7 +15,6 @@
*/
package com.baomidou.dynamic.datasource.creator;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import javax.sql.DataSource;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baomidou.dynamic.datasource.common;
package com.baomidou.dynamic.datasource.creator;
import com.baomidou.dynamic.datasource.creator.atomikos.AtomikosConfig;
import com.baomidou.dynamic.datasource.creator.beecp.BeeCpConfig;

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baomidou.dynamic.datasource.common;
package com.baomidou.dynamic.datasource.creator;
import lombok.Data;

View File

@ -16,18 +16,15 @@
package com.baomidou.dynamic.datasource.creator.atomikos;
import com.atomikos.jdbc.AtomikosDataSourceBean;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.enums.XADataSourceEnum;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
import org.springframework.beans.factory.InitializingBean;
import javax.sql.DataSource;
import java.util.Properties;
import static com.baomidou.dynamic.datasource.support.DdConstants.ATOMIKOS_DATASOURCE;
/**
* Atomikos数据源配置
@ -35,17 +32,16 @@ import static com.baomidou.dynamic.datasource.support.DdConstants.ATOMIKOS_DATAS
* @author <a href="mailto:312290710@qq.com">jiazhifeng</a>
* @date 2023/03/02 10:20
*/
public class AtomikosDataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator, InitializingBean {
public class AtomikosDataSourceCreator implements DataSourceCreator {
private static final ConfigMergeCreator<AtomikosConfig, AtomikosConfig> MERGE_CREATOR = new ConfigMergeCreator<>("AtomikosConfig", AtomikosConfig.class, AtomikosConfig.class);
private AtomikosConfig atomikosConfig;
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
AtomikosConfig config = MERGE_CREATOR.create(atomikosConfig, dataSourceProperty.getAtomikos());
AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean();
DbType dbType = JdbcUtils.getDbType(dataSourceProperty.getUrl());
xaDataSource.setXaDataSourceClassName(XADataSourceEnum.getByDbType(dbType));
xaDataSource.setXaDataSourceClassName(dataSourceProperty.getDriverClassName());
Properties xaProperties = new Properties();
xaProperties.setProperty("url", dataSourceProperty.getUrl());
@ -69,12 +65,6 @@ public class AtomikosDataSourceCreator extends AbstractDataSourceCreator impleme
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
Class<? extends DataSource> type = dataSourceProperty.getType();
DbType dbType = JdbcUtils.getDbType(dataSourceProperty.getUrl());
return (type == null || ATOMIKOS_DATASOURCE.equals(type.getName())) && XADataSourceEnum.contains(dbType);
}
@Override
public void afterPropertiesSet() throws Exception {
atomikosConfig = properties.getAtomikos();
return (type == null || DdConstants.ATOMIKOS_DATASOURCE.equals(type.getName())) && XADataSourceEnum.contains(dataSourceProperty.getDriverClassName());
}
}

View File

@ -15,8 +15,8 @@
*/
package com.baomidou.dynamic.datasource.creator.basic;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
import lombok.extern.slf4j.Slf4j;
@ -30,7 +30,7 @@ import java.lang.reflect.Method;
* @since 2020/1/21
*/
@Slf4j
public class BasicDataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator {
public class BasicDataSourceCreator implements DataSourceCreator {
private static Method createMethod;
private static Method typeMethod;
@ -76,7 +76,7 @@ public class BasicDataSourceCreator extends AbstractDataSourceCreator implements
* @return 数据源
*/
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
try {
Object o1 = createMethod.invoke(null);
Object o2 = typeMethod.invoke(o1, dataSourceProperty.getType());

View File

@ -17,18 +17,17 @@ package com.baomidou.dynamic.datasource.creator.beecp;
import cn.beecp.BeeDataSource;
import cn.beecp.BeeDataSourceConfig;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import static com.baomidou.dynamic.datasource.support.DdConstants.BEECP_DATASOURCE;
/**
* BeeCp数据源创建器
@ -37,7 +36,7 @@ import static com.baomidou.dynamic.datasource.support.DdConstants.BEECP_DATASOUR
* @since 2020/5/14
*/
@Slf4j
public class BeeCpDataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator, InitializingBean {
public class BeeCpDataSourceCreator implements DataSourceCreator {
private static final ConfigMergeCreator<BeeCpConfig, BeeDataSourceConfig> MERGE_CREATOR = new ConfigMergeCreator<>("BeeCp", BeeCpConfig.class, BeeDataSourceConfig.class);
@ -53,16 +52,15 @@ public class BeeCpDataSourceCreator extends AbstractDataSourceCreator implements
private BeeCpConfig gConfig;
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
BeeDataSourceConfig config = MERGE_CREATOR.create(gConfig, dataSourceProperty.getBeecp());
config.setUsername(dataSourceProperty.getUsername());
config.setPassword(dataSourceProperty.getPassword());
config.setJdbcUrl(dataSourceProperty.getUrl());
config.setPoolName(dataSourceProperty.getPoolName());
String driverClassName = dataSourceProperty.getDriverClassName();
if (!StringUtils.isEmpty(driverClassName)) {
if (DsStrUtils.hasText(driverClassName)) {
config.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
@ -80,11 +78,6 @@ public class BeeCpDataSourceCreator extends AbstractDataSourceCreator implements
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
Class<? extends DataSource> type = dataSourceProperty.getType();
return type == null || BEECP_DATASOURCE.equals(type.getName());
}
@Override
public void afterPropertiesSet() throws Exception {
gConfig = properties.getBeecp();
return type == null || DdConstants.BEECP_DATASOURCE.equals(type.getName());
}
}

View File

@ -15,25 +15,23 @@
*/
package com.baomidou.dynamic.datasource.creator.dbcp;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import lombok.SneakyThrows;
import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import static com.baomidou.dynamic.datasource.support.DdConstants.DBCP2_DATASOURCE;
/**
* DBCP数据源创建器
*
* @author TaoYu
* @since 2021/5/18
*/
public class Dbcp2DataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator, InitializingBean {
public class Dbcp2DataSourceCreator implements DataSourceCreator {
private static final ConfigMergeCreator<Dbcp2Config, BasicDataSource> MERGE_CREATOR = new ConfigMergeCreator<>("Dbcp2", Dbcp2Config.class, BasicDataSource.class);
@ -41,13 +39,13 @@ public class Dbcp2DataSourceCreator extends AbstractDataSourceCreator implements
@Override
@SneakyThrows
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
BasicDataSource dataSource = MERGE_CREATOR.create(gConfig, dataSourceProperty.getDbcp2());
dataSource.setUsername(dataSourceProperty.getUsername());
dataSource.setPassword(dataSourceProperty.getPassword());
dataSource.setUrl(dataSourceProperty.getUrl());
String driverClassName = dataSourceProperty.getDriverClassName();
if (!StringUtils.isEmpty(driverClassName)) {
if (DsStrUtils.hasText(driverClassName)) {
dataSource.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
@ -59,11 +57,6 @@ public class Dbcp2DataSourceCreator extends AbstractDataSourceCreator implements
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
Class<? extends DataSource> type = dataSourceProperty.getType();
return type == null || DBCP2_DATASOURCE.equals(type.getName());
}
@Override
public void afterPropertiesSet() throws Exception {
gConfig = properties.getDbcp2();
return type == null || DdConstants.DBCP2_DATASOURCE.equals(type.getName());
}
}

View File

@ -23,13 +23,12 @@ import com.alibaba.druid.filter.logging.Slf4jLogFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.wall.WallConfig;
import com.alibaba.druid.wall.WallFilter;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.exception.ErrorCreateDataSourceException;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import java.lang.reflect.Method;
@ -38,7 +37,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import static com.baomidou.dynamic.datasource.support.DdConstants.DRUID_DATASOURCE;
/**
* Druid数据源创建器
@ -63,8 +61,8 @@ public class DruidDataSourceCreator implements DataSourceCreator {
}
}
@Autowired(required = false)
private ApplicationContext applicationContext;
// @Autowired(required = false)
// private ApplicationContext applicationContext;
private DruidConfig gConfig;
@Override
@ -75,7 +73,7 @@ public class DruidDataSourceCreator implements DataSourceCreator {
dataSource.setUrl(dataSourceProperty.getUrl());
dataSource.setName(dataSourceProperty.getPoolName());
String driverClassName = dataSourceProperty.getDriverClassName();
if (!StringUtils.isEmpty(driverClassName)) {
if (DsStrUtils.hasText(driverClassName)) {
dataSource.setDriverClassName(driverClassName);
}
DruidConfig config = dataSourceProperty.getDruid();
@ -105,7 +103,7 @@ public class DruidDataSourceCreator implements DataSourceCreator {
private List<Filter> initFilters(DataSourceProperty dataSourceProperty, String filters) {
List<Filter> proxyFilters = new ArrayList<>(2);
if (!StringUtils.isEmpty(filters)) {
if (DsStrUtils.hasText(filters)) {
String[] filterItems = filters.split(",");
for (String filter : filterItems) {
switch (filter) {
@ -135,11 +133,11 @@ public class DruidDataSourceCreator implements DataSourceCreator {
}
}
}
if (this.applicationContext != null) {
for (String filterId : gConfig.getProxyFilters()) {
proxyFilters.add(this.applicationContext.getBean(filterId, Filter.class));
}
}
// if (this.applicationContext != null) {
// for (String filterId : gConfig.getProxyFilters()) {
// proxyFilters.add(this.applicationContext.getBean(filterId, Filter.class));
// }
// }
return proxyFilters;
}
@ -246,7 +244,6 @@ public class DruidDataSourceCreator implements DataSourceCreator {
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
Class<? extends DataSource> type = dataSourceProperty.getType();
return type == null || DRUID_DATASOURCE.equals(type.getName());
return type == null || DdConstants.DRUID_DATASOURCE.equals(type.getName());
}
}

View File

@ -15,27 +15,25 @@
*/
package com.baomidou.dynamic.datasource.creator.hikaricp;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.toolkit.ConfigMergeCreator;
import com.baomidou.dynamic.datasource.toolkit.DsStrUtils;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import static com.baomidou.dynamic.datasource.support.DdConstants.HIKARI_DATASOURCE;
/**
* Hikari数据源创建器
*
* @author TaoYu
* @since 2020/1/21
*/
public class HikariDataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator, InitializingBean {
public class HikariDataSourceCreator implements DataSourceCreator {
private static final ConfigMergeCreator<HikariCpConfig, HikariConfig> MERGE_CREATOR = new ConfigMergeCreator<>("HikariCp", HikariCpConfig.class, HikariConfig.class);
private static Method configCopyMethod = null;
@ -68,14 +66,14 @@ public class HikariDataSourceCreator extends AbstractDataSourceCreator implement
}
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
HikariConfig config = MERGE_CREATOR.create(gConfig, dataSourceProperty.getHikari());
config.setUsername(dataSourceProperty.getUsername());
config.setPassword(dataSourceProperty.getPassword());
config.setJdbcUrl(dataSourceProperty.getUrl());
config.setPoolName(dataSourceProperty.getPoolName());
String driverClassName = dataSourceProperty.getDriverClassName();
if (!StringUtils.isEmpty(driverClassName)) {
if (DsStrUtils.hasText(driverClassName)) {
config.setDriverClassName(driverClassName);
}
if (Boolean.FALSE.equals(dataSourceProperty.getLazy())) {
@ -94,11 +92,6 @@ public class HikariDataSourceCreator extends AbstractDataSourceCreator implement
@Override
public boolean support(DataSourceProperty dataSourceProperty) {
Class<? extends DataSource> type = dataSourceProperty.getType();
return type == null || HIKARI_DATASOURCE.equals(type.getName());
}
@Override
public void afterPropertiesSet() throws Exception {
gConfig = properties.getHikari();
return type == null || DdConstants.HIKARI_DATASOURCE.equals(type.getName());
}
}

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baomidou.dynamic.datasource.support;
package com.baomidou.dynamic.datasource.enums;
/**
* 动态数据源常量
@ -52,4 +52,4 @@ public interface DdConstants {
* Atomikos数据源
*/
String ATOMIKOS_DATASOURCE = "com.atomikos.jdbc.AtomikosDataSourceBean";
}
}

View File

@ -15,7 +15,6 @@
*/
package com.baomidou.dynamic.datasource.enums;
import com.baomidou.mybatisplus.annotation.DbType;
import lombok.Getter;
/**
@ -26,35 +25,23 @@ import lombok.Getter;
*/
@Getter
public enum XADataSourceEnum {
ORACLE(DbType.ORACLE, "oracle.jdbc.xa.client.OracleXADataSource"),
MYSQL(DbType.MYSQL, "com.mysql.cj.jdbc.MysqlXADataSource"),
POSTGRE_SQL(DbType.POSTGRE_SQL, "org.postgresql.xa.PGXADataSource"),
H2(DbType.H2, "org.h2.jdbcx.JdbcDataSource"),
;
MYSQL("com.mysql.cj.jdbc.MysqlXADataSource"),
ORACLE("oracle.jdbc.xa.client.OracleXADataSource"),
POSTGRE_SQL("org.postgresql.xa.PGXADataSource"),
H2("org.h2.jdbcx.JdbcDataSource");
private final DbType dbType;
private final String xaDataSourceClassName;
private final String xaDriverClassName;
XADataSourceEnum(DbType dbType, String xaDataSourceClassName) {
this.dbType = dbType;
this.xaDataSourceClassName = xaDataSourceClassName;
XADataSourceEnum(String xaDriverClassName) {
this.xaDriverClassName = xaDriverClassName;
}
public static boolean contains(DbType dbType) {
public static boolean contains(String xaDataSourceClassName) {
for (XADataSourceEnum item : values()) {
if (item.getDbType() == dbType) {
if (item.getXaDriverClassName().equals(xaDataSourceClassName)) {
return true;
}
}
return false;
}
public static String getByDbType(DbType dbType) {
for (XADataSourceEnum item : values()) {
if (item.getDbType() == dbType) {
return item.getXaDataSourceClassName();
}
}
return null;
}
}

View File

@ -0,0 +1,26 @@
package com.baomidou.dynamic.datasource.toolkit;
public abstract class DsStrUtils {
public static boolean hasLength(CharSequence str) {
return (str != null && str.length() > 0);
}
public static boolean hasLength(String str) {
return hasLength((CharSequence) str);
}
public static boolean hasText(CharSequence str) {
if (!hasLength(str)) {
return false;
}
int strLen = str.length();
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(str.charAt(i))) {
return true;
}
}
return false;
}
}

View File

@ -42,6 +42,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.spring.boot.autoconfigure;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.atomikos.AtomikosConfig;
import com.baomidou.dynamic.datasource.creator.beecp.BeeCpConfig;
import com.baomidou.dynamic.datasource.creator.dbcp.Dbcp2Config;

View File

@ -11,33 +11,11 @@
<artifactId>dynamic-datasource-spring</artifactId>
<dependencies>
<!--datasource-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java7</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jdbc</artifactId>
<optional>true</optional>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-creator</artifactId>
</dependency>
<!--third-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baomidou.dynamic.datasource.common;
package com.baomidou.dynamic.datasource.creator;
import com.baomidou.dynamic.datasource.enums.SeataMode;
import com.baomidou.dynamic.datasource.toolkit.CryptoUtils;

View File

@ -15,9 +15,6 @@
*/
package com.baomidou.dynamic.datasource.creator;
import com.baomidou.dynamic.datasource.common.DataSourceGlobalProperty;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.common.DatasourceInitProperties;
import com.baomidou.dynamic.datasource.ds.ItemDataSource;
import com.baomidou.dynamic.datasource.enums.SeataMode;
import com.baomidou.dynamic.datasource.event.DataSourceInitEvent;

View File

@ -15,8 +15,8 @@
*/
package com.baomidou.dynamic.datasource.creator.jndi;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup;
import javax.sql.DataSource;
@ -27,7 +27,7 @@ import javax.sql.DataSource;
* @author TaoYu
* @since 2020/1/27
*/
public class JndiDataSourceCreator extends AbstractDataSourceCreator implements DataSourceCreator {
public class JndiDataSourceCreator implements DataSourceCreator {
private static final JndiDataSourceLookup LOOKUP = new JndiDataSourceLookup();
@ -42,7 +42,7 @@ public class JndiDataSourceCreator extends AbstractDataSourceCreator implements
* @return 数据源
*/
@Override
public DataSource doCreateDataSource(DataSourceProperty dataSourceProperty) {
public DataSource createDataSource(DataSourceProperty dataSourceProperty) {
return createDataSource(dataSourceProperty.getJndiName());
}

View File

@ -15,7 +15,8 @@
*/
package com.baomidou.dynamic.datasource.event;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import javax.sql.DataSource;

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.event;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.toolkit.CryptoUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.plugin;
import com.baomidou.dynamic.datasource.support.DdConstants;
import com.baomidou.dynamic.datasource.enums.DdConstants;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.cache.CacheKey;
@ -71,4 +71,4 @@ public class MasterSlaveAutoRoutingPlugin implements Interceptor {
@Override
public void setProperties(Properties properties) {
}
}
}

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.provider;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DefaultDataSourceCreator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.provider;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

View File

@ -15,7 +15,7 @@
*/
package com.baomidou.dynamic.datasource.provider;
import com.baomidou.dynamic.datasource.common.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@ -11,6 +11,7 @@
<inceptionYear>2018</inceptionYear>
<modules>
<module>dynamic-datasource-creator</module>
<module>dynamic-datasource-spring</module>
<module>dynamic-datasource-spring-boot-common</module>
<module>dynamic-datasource-spring-boot-starter</module>
@ -73,6 +74,11 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-creator</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring</artifactId>