From 0a2054c67ba0b243f10edfe84b572c9b4157e3b5 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期四, 13 二月 2025 10:35:05 +0800 Subject: [PATCH] 20250213 --- ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java | 110 +++++++----------------------------------------------- 1 files changed, 15 insertions(+), 95 deletions(-) diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java index a7c2639..7065424 100644 --- a/ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java +++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import javax.annotation.Resource; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; @@ -13,12 +14,14 @@ import javax.servlet.ServletResponse; import javax.sql.DataSource; -import com.ltkj.db.HospDynamicDataSource; import com.ltkj.framework.config.properties.DruidProperties; import com.ltkj.framework.datasource.DynamicDataSource; +import com.ltkj.system.service.ISysConfigService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,29 +50,7 @@ private String path; - private static final String DEFAULT_DATA_SOURCE_KEY = "default"; // 涓诲簱鐨勬爣璇� - private final Map<String, DataSource> dataSourceCache = new HashMap<>(); // 鏁版嵁婧愮紦瀛� - - - // 浠� application.yml 涓鍙栦富搴撶殑閰嶇疆 -// @Value("${spring.datasource.url}") - private String primaryUrl; - - private String primaryPort; - - // @Value("${spring.datasource.username}") - private String primaryUsername; - - // @Value("${spring.datasource.password}") - private String primaryPassword; - - // @Value("${dbUrl}") - private String dbUrl; - - private String dbName; - - -// @Bean + @Bean // @ConfigurationProperties("spring.datasource.druid.master") public DataSource masterDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); @@ -150,7 +131,7 @@ return druidProperties.dataSource(dataSource); } -// @Bean + @Bean // @ConfigurationProperties("spring.datasource.druid.slavehis") // @ConditionalOnProperty(prefix = "spring.datasource.druid.slavehis", name = "enabled", havingValue = "true") public DataSource slaveHisDataSource(DruidProperties druidProperties) { @@ -193,7 +174,7 @@ return druidProperties.dataSource(dataSource); } -// @Bean + @Bean // @ConfigurationProperties("spring.datasource.druid.slavelis") // @ConditionalOnProperty(prefix = "spring.datasource.druid.slavelis", name = "enabled", havingValue = "true") public DataSource slaveDataLisSource(DruidProperties druidProperties) { @@ -235,7 +216,7 @@ return druidProperties.dataSource(dataSource); } -// @Bean + @Bean // @ConfigurationProperties("spring.datasource.druid.slavepacs") // @ConditionalOnProperty(prefix = "spring.datasource.druid.slavepacs", name = "enabled", havingValue = "true") public DataSource slaveDataPacsSource(DruidProperties druidProperties) { @@ -278,7 +259,9 @@ return druidProperties.dataSource(dataSource); } -// @Bean + + + @Bean // @ConfigurationProperties("spring.datasource.druid.slavepacs") // @ConditionalOnProperty(prefix = "spring.datasource.druid.slavepacs", name = "enabled", havingValue = "true") public DataSource slaveDataWsSource(DruidProperties druidProperties) { @@ -363,72 +346,9 @@ return dataSource; } -// @Bean(name = "hospDynamicDataSources") -// public DataSource hospDynamicDataSources() { -// HospDynamicDataSource dynamicDataSource = new HospDynamicDataSource(); -// FileInputStream fis = null; -// Properties props = new Properties(); -// try { -// fis = new FileInputStream(url); -// props.load(fis); -// fis.close(); -// dbUrl = props.getProperty("ip"); -// dbName = props.getProperty("name"); -// primaryPassword = props.getProperty("password"); -// primaryPort = props.getProperty("prot"); -// primaryUsername = props.getProperty("username"); -// } catch (IOException e) { -// throw new RuntimeException("璇诲彇閰嶇疆鏂囦欢澶辫触", e); -// } -// String url = "jdbc:mysql://" + dbUrl + ":" + primaryPort + "/" + dbName; -// // 鍒濆鍖栭粯璁ゆ暟鎹簮涓轰富搴� -// dynamicDataSource.addTargetDataSource(DEFAULT_DATA_SOURCE_KEY, createDataSource(url, primaryUsername, primaryPassword)); -// -// dynamicDataSource.setDefaultTargetDataSource(dynamicDataSource.getTargetDataSources().get(DEFAULT_DATA_SOURCE_KEY)); // 璁剧疆榛樿鏁版嵁婧� -// return dynamicDataSource; -// } - // 鏍规嵁鐢ㄦ埛 ID 鍔ㄦ�佽幏鍙栨暟鎹簮 - public void addDataSource(String dbName) { - FileInputStream fis = null; - Properties props = new Properties(); - try { - fis = new FileInputStream(url); - props.load(fis); - fis.close(); - dbUrl = props.getProperty("ip"); - primaryPassword = props.getProperty("password"); - primaryPort = props.getProperty("prot"); - primaryUsername = props.getProperty("username"); - } catch (IOException e) { - throw new RuntimeException("璇诲彇閰嶇疆鏂囦欢澶辫触", e); - } - - // 妫�鏌ョ紦瀛樹腑鏄惁宸茬粡瀛樺湪璇ユ暟鎹簮 - if (!dataSourceCache.containsKey(dbName)) { - synchronized (this) { - String url = "jdbc:mysql://" + dbUrl + ":" + primaryPort + "/" + dbName; - DataSource dataSource = createDataSource(url, primaryUsername, primaryPassword); - dataSourceCache.put(dbName, dataSource); - - DynamicDataSource dynamicDataSource = dataSource(dataSource); - dynamicDataSource.addTargetDataSource(dbName, dataSource); - } - } - } - - // 鍔ㄦ�佸垱寤烘暟鎹簮 - private DataSource createDataSource(String url, String username, String password) { - DruidDataSource dataSource = new DruidDataSource(); - dataSource.setUrl(url); - dataSource.setUsername(username); - dataSource.setPassword(password); - return dataSource; - } - - -// @Bean(name = "dynamicDataSource") -// @Primary + @Bean(name = "dynamicDataSource") + @Primary public DynamicDataSource dataSource(DataSource masterDataSource) { Map<Object, Object> targetDataSources = new HashMap<>(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); @@ -458,8 +378,8 @@ * 鍘婚櫎鐩戞帶椤甸潰搴曢儴鐨勫箍鍛� */ @SuppressWarnings({"rawtypes", "unchecked"}) -// @Bean -// @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true") + @Bean + @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true") public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties) { // 鑾峰彇web鐩戞帶椤甸潰鐨勫弬鏁� DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); -- Gitblit v1.8.0