diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java index 4b5341d19..5fda8f453 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java @@ -15,5 +15,13 @@ public enum DataSourceType /** * 从库 */ - SLAVE + SLAVE, + + // 202.10.28 新增多个从库,避免后期修改代码 + SLAVE2, + + SLAVE3, + + SLAVE4, + // 202.10.28 新增多个从库,避免后期修改代码(end) } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java index f671b3a30..8f4200bda 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java @@ -49,6 +49,34 @@ public class DruidConfig return druidProperties.dataSource(dataSource); } + // 202.10.28 新增多个从库,避免后期修改代码 + @Bean + @ConfigurationProperties("spring.datasource.druid.slave2") + @ConditionalOnProperty(prefix = "spring.datasource.druid.slave2", name = "enabled", havingValue = "true") + public DataSource slaveDataSource2(DruidProperties druidProperties) + { + DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); + return druidProperties.dataSource(dataSource); + } + @Bean + @ConfigurationProperties("spring.datasource.druid.slave3") + @ConditionalOnProperty(prefix = "spring.datasource.druid.slave3", name = "enabled", havingValue = "true") + public DataSource slaveDataSource3(DruidProperties druidProperties) + { + DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); + return druidProperties.dataSource(dataSource); + } + @Bean + @ConfigurationProperties("spring.datasource.druid.slave4") + @ConditionalOnProperty(prefix = "spring.datasource.druid.slave4", name = "enabled", havingValue = "true") + public DataSource slaveDataSource4(DruidProperties druidProperties) + { + DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); + return druidProperties.dataSource(dataSource); + } + // 202.10.28 新增多个从库,避免后期修改代码(end) + + @Bean(name = "dynamicDataSource") @Primary public DynamicDataSource dataSource(DataSource masterDataSource) @@ -56,6 +84,12 @@ public class DruidConfig Map targetDataSources = new HashMap<>(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); + // 202.10.28 新增多个从库,避免后期修改代码 + setDataSource(targetDataSources, DataSourceType.SLAVE2.name(), "slaveDataSource2"); + setDataSource(targetDataSources, DataSourceType.SLAVE3.name(), "slaveDataSource3"); + setDataSource(targetDataSources, DataSourceType.SLAVE4.name(), "slaveDataSource4"); + // 202.10.28 新增多个从库,避免后期修改代码(end) + return new DynamicDataSource(masterDataSource, targetDataSources); }