From 1404c6048e41e71e35577bea5f4906570042f506 Mon Sep 17 00:00:00 2001
From: lsy <18332763730@163.com>
Date: Wed, 27 Dec 2017 00:47:07 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../browser/config/BrowserSecurityConfig.java | 1 -
boot-starter/boot-starter-ssm/pom.xml | 4 ---
...ion.java => SlaveDataSourceCondition.java} | 8 ++---
.../common/config/DruidDataSourceConfig.java | 19 +++++++----
.../config/DynamicDataSourceConfig.java | 33 +++++++++++++++----
.../config/SqlSessionFactoryConfig.java | 1 -
.../common/dao/DataSourceContextHolder.java | 6 +++-
.../fast/common/dao/DynamicDataSource.java | 4 +--
ms/cms/src/main/resources/bootstrap.yml | 2 +-
ms/gateway/src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
.../fast/ucenter/UcenterApplication.java | 4 ---
ms/ucenter/src/main/resources/bootstrap.yml | 2 +-
ms/upms/src/main/resources/bootstrap.yml | 2 +-
15 files changed, 55 insertions(+), 37 deletions(-)
rename boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/{SalveDataSourceCondition.java => SlaveDataSourceCondition.java} (78%)
diff --git a/boot-starter/boot-starter-security/boot-starter-security-browser/src/main/java/com/micro/fast/security/browser/config/BrowserSecurityConfig.java b/boot-starter/boot-starter-security/boot-starter-security-browser/src/main/java/com/micro/fast/security/browser/config/BrowserSecurityConfig.java
index 6fd4f0c..990b0ef 100644
--- a/boot-starter/boot-starter-security/boot-starter-security-browser/src/main/java/com/micro/fast/security/browser/config/BrowserSecurityConfig.java
+++ b/boot-starter/boot-starter-security/boot-starter-security-browser/src/main/java/com/micro/fast/security/browser/config/BrowserSecurityConfig.java
@@ -65,7 +65,6 @@ public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter {
* 需要注入数据源
*/
@Autowired
- @Qualifier("masterDataSource")
private DataSource dataSource;
@Autowired
diff --git a/boot-starter/boot-starter-ssm/pom.xml b/boot-starter/boot-starter-ssm/pom.xml
index 05badc3..14aa8d1 100644
--- a/boot-starter/boot-starter-ssm/pom.xml
+++ b/boot-starter/boot-starter-ssm/pom.xml
@@ -61,10 +61,6 @@
mysql-connector-java
-
- com.alibaba
- druid
-
com.alibaba
druid-spring-boot-starter
diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SalveDataSourceCondition.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SlaveDataSourceCondition.java
similarity index 78%
rename from boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SalveDataSourceCondition.java
rename to boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SlaveDataSourceCondition.java
index 8266020..8433a04 100644
--- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SalveDataSourceCondition.java
+++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/condition/SlaveDataSourceCondition.java
@@ -13,13 +13,13 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
* @version 1.0
* @since 1.0
*/
-public class SalveDataSourceCondition implements Condition {
- private static final Logger logger = LoggerFactory.getLogger(SalveDataSourceCondition.class);
+public class SlaveDataSourceCondition implements Condition {
+ private static final Logger logger = LoggerFactory.getLogger(SlaveDataSourceCondition.class);
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
Environment environment = conditionContext.getEnvironment();
//判断环境中是否有从数据库的配置
- logger.info("是否包含从数据库: {}",environment.containsProperty("druid.two.username"));
- return environment.containsProperty("druid.two.username");
+ logger.info("是否包含从数据库: {}",environment.containsProperty("spring.datasource.druid.slave.username"));
+ return environment.containsProperty("spring.datasource.druid.slave.username");
}
}
diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DruidDataSourceConfig.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DruidDataSourceConfig.java
index 2361a8f..da794ea 100644
--- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DruidDataSourceConfig.java
+++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DruidDataSourceConfig.java
@@ -1,6 +1,7 @@
package com.micro.fast.common.config;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.micro.fast.common.condition.SlaveDataSourceCondition;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
@@ -9,19 +10,23 @@ import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
+/**
+ * @author lsy
+ */
@Configuration
public class DruidDataSourceConfig {
+
@Primary
- @Bean(name = "masterDataSource")
- @ConfigurationProperties("druid.one")
- public DataSource dataSourceOne(){
+ @Bean(name = DynamicDataSourceConfig.MASTER_DATA_SOURCE)
+ @ConfigurationProperties("spring.datasource.druid.master")
+ public DataSource masterDataSource(){
return DruidDataSourceBuilder.create().build();
}
- @Bean(name = "slaveDataSource")
- @ConfigurationProperties("druid.two")
- @Conditional(com.micro.fast.common.condition.SalveDataSourceCondition.class)
- public DataSource dataSourceTwo(){
+ @Bean(name = DynamicDataSourceConfig.SLAVE_DATA_SOURCE)
+ @ConfigurationProperties("spring.datasource.druid.slave")
+ @Conditional(SlaveDataSourceCondition.class)
+ public DataSource slaveDataSource(){
return DruidDataSourceBuilder.create().build();
}
}
diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DynamicDataSourceConfig.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DynamicDataSourceConfig.java
index c806075..dfaf130 100644
--- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DynamicDataSourceConfig.java
+++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/config/DynamicDataSourceConfig.java
@@ -1,5 +1,6 @@
package com.micro.fast.common.config;
+import com.micro.fast.common.dao.DataSourceContextHolder;
import com.micro.fast.common.dao.DynamicDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -22,20 +23,31 @@ import java.util.Map;
@Configuration
@AutoConfigureBefore({SqlSessionFactoryConfig.class})
public class DynamicDataSourceConfig {
+ public static final String SLAVE = "slave";
+ public static final String MASTER = "master";
+ public static final String SLAVE_DATA_SOURCE = "slaveDataSource";
+ public static final String MASTER_DATA_SOURCE = "masterDataSource";
+
/**
- * 注入主数据源
+ * 当ataSource存在时
*/
@Autowired
- @Qualifier("masterDataSource")
+ @Qualifier(MASTER_DATA_SOURCE)
private DataSource masterDataSource;
/**
* 从数据源
*/
@Autowired(required = false)
- @Qualifier("slaveDataSource")
+ @Qualifier(SLAVE_DATA_SOURCE)
private DataSource slaveDataSource;
+ /**
+ * 收集所有的datasource
+ */
+ @Autowired
+ private Map dataSourceMap;
+
@Bean(name = "dynamicDataSource")
public DataSource dynamicDataSource(){
//动态数据源对象
@@ -44,12 +56,19 @@ public class DynamicDataSourceConfig {
dynamicDataSource.setDefaultTargetDataSource(masterDataSource);
//配置多数据源
Map