Pārlūkot izejas kodu

分库分表配置抽取

yubin 3 nedēļas atpakaļ
vecāks
revīzija
8e5ca60bbc

+ 58 - 5
mall-service/src/main/java/com/txz/mall/configurer/ShardingJdbcConfig.java

@@ -8,6 +8,7 @@ import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;
 import org.apache.shardingsphere.api.config.sharding.strategy.ComplexShardingStrategyConfiguration;
 import org.apache.shardingsphere.api.config.sharding.strategy.StandardShardingStrategyConfiguration;
 import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.*;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@@ -105,6 +106,58 @@ public class ShardingJdbcConfig {
 
 
 
+
+    @Value("${sharding.datasource.dsdefault.jdbc-url}")
+    private String dsDefaultJdbcUrl;
+
+    @Value("${sharding.datasource.dsdefault.username}")
+    private String dsDefaultUsername;
+
+    @Value("${sharding.datasource.dsdefault.password}")
+    private String dsDefaultPassword;
+
+
+    @Value("${sharding.datasource.ds0.jdbc-url}")
+    private String ds0JdbcUrl;
+
+    @Value("${sharding.datasource.ds0.username}")
+    private String ds0Username;
+
+    @Value("${sharding.datasource.ds0.password}")
+    private String ds0Password;
+
+
+
+    @Value("${sharding.datasource.ds1.jdbc-url}")
+    private String ds1JdbcUrl;
+
+    @Value("${sharding.datasource.ds1.username}")
+    private String ds1Username;
+
+    @Value("${sharding.datasource.ds1.password}")
+    private String ds1Password;
+
+
+    @Value("${sharding.datasource.ds2.jdbc-url}")
+    private String ds2JdbcUrl;
+
+    @Value("${sharding.datasource.ds2.username}")
+    private String ds2Username;
+
+    @Value("${sharding.datasource.ds2.password}")
+    private String ds2Password;
+
+
+
+    @Value("${sharding.datasource.ds3.jdbc-url}")
+    private String ds3JdbcUrl;
+
+    @Value("${sharding.datasource.ds3.username}")
+    private String ds3Username;
+
+    @Value("${sharding.datasource.ds3.password}")
+    private String ds3Password;
+
     /**
      * 配置数据源
      */
@@ -113,12 +166,12 @@ public class ShardingJdbcConfig {
 
         // 1. 配置多个数据源
         Map<String, DataSource> dataSources = new HashMap<>();
-        dataSources.put("ds0", createDataSource("jdbc:mysql://124.222.152.234:3306/mall_0?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false", "root", "hy123456","ds0"));
-        dataSources.put("ds1", createDataSource("jdbc:mysql://124.222.152.234:3306/mall_1?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false", "root", "hy123456","ds1"));
-        dataSources.put("ds2", createDataSource("jdbc:mysql://124.222.152.234:3306/mall_2?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false", "root", "hy123456","ds2"));
-        dataSources.put("ds3", createDataSource("jdbc:mysql://124.222.152.234:3306/mall_3?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false", "root", "hy123456","ds3"));
+        dataSources.put("ds0", createDataSource(ds0JdbcUrl, ds0Username, ds0Password,"ds0"));
+        dataSources.put("ds1", createDataSource(ds1JdbcUrl, ds1Username, ds1Password,"ds1"));
+        dataSources.put("ds2", createDataSource(ds2JdbcUrl, ds2Username, ds2Password,"ds2"));
+        dataSources.put("ds3", createDataSource(ds3JdbcUrl, ds3Username, ds3Password,"ds3"));
         // 添加默认数据库(非分库分表的表使用)
-        dataSources.put("default_ds", createDataSource("jdbc:mysql://124.222.152.234:3306/mall?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false", "root", "hy123456","ds4"));
+        dataSources.put("default_ds", createDataSource(dsDefaultJdbcUrl, dsDefaultUsername, dsDefaultPassword,"default_ds"));
 
 
 

+ 25 - 1
mall-service/src/main/resources/bootstrap.properties

@@ -129,7 +129,31 @@ spring.datasource.hikari.connection-test-query=SELECT 1
 
 spring.main.allow-bean-definition-overriding=true
 
+server.host=124.222.152.234
 
 
 
-server.host=124.222.152.234
+sharding.datasource.dsdefault.jdbc-url=jdbc:mysql://124.222.152.234:3306/mall?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+sharding.datasource.dsdefault.username=root
+sharding.datasource.dsdefault.password=hy123456
+
+
+sharding.datasource.ds0.jdbc-url=jdbc:mysql://124.222.152.234:3306/mall_0?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+sharding.datasource.ds0.username=root
+sharding.datasource.ds0.password=hy123456
+
+
+sharding.datasource.ds1.jdbc-url=jdbc:mysql://124.222.152.234:3306/mall_1?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+sharding.datasource.ds1.username=root
+sharding.datasource.ds1.password=hy123456
+
+
+sharding.datasource.ds2.jdbc-url=jdbc:mysql://124.222.152.234:3306/mall_2?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+sharding.datasource.ds2.username=root
+sharding.datasource.ds2.password=hy123456
+
+
+sharding.datasource.ds3.jdbc-url=jdbc:mysql://124.222.152.234:3306/mall_3?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+sharding.datasource.ds3.username=root
+sharding.datasource.ds3.password=hy123456
+