From cf16e31632fa5c293c978d27e64dfec7b08e3335 Mon Sep 17 00:00:00 2001 From: dingzhongyuan <dingzhongyuan@kinggrid.com> Date: 星期二, 22 六月 2021 11:31:04 +0800 Subject: [PATCH] 多数据源替换成dynamic-datasource --- /dev/null | 45 --------------- ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 5 - ruoyi-admin/src/main/resources/application-prod.yml | 33 ++++++---- pom.xml | 9 +++ ruoyi-admin/src/main/resources/application-dev.yml | 31 ++++++---- 5 files changed, 48 insertions(+), 75 deletions(-) diff --git a/pom.xml b/pom.xml index 355d59e..877a396 100644 --- a/pom.xml +++ b/pom.xml @@ -30,6 +30,7 @@ <feign-okhttp.version>11.0</feign-okhttp.version> <spring-boot-admin.version>2.4.1</spring-boot-admin.version> <redisson.version>3.15.2</redisson.version> + <datasource.version>3.4.0</datasource.version> </properties> <!-- 渚濊禆澹版槑 --> @@ -79,6 +80,13 @@ <version>${jwt.version}</version> </dependency> + <!-- dynamic-datasource 澶氭暟鎹簮--> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>dynamic-datasource-spring-boot-starter</artifactId> + <version>${datasource.version}</version> + </dependency> + <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> @@ -89,6 +97,7 @@ <artifactId>mybatis-plus-extension</artifactId> <version>${mybatis-plus.version}</version> </dependency> + <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 5b55927..3a1a4ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -2,15 +2,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * 鍚姩绋嬪簭 - * + * * @author ruoyi */ -@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) +@SpringBootApplication public class RuoYiApplication { public static void main(String[] args) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index eb54d9c..75093f7 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -1,21 +1,24 @@ # 鏁版嵁婧愰厤缃� spring: + autoconfigure: + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver + dynamic: + datasource: + # 涓诲簱鏁版嵁婧� + master: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true + username: root + password: root + # 浠庡簱鏁版嵁婧� + slave: + driverClassName: com.mysql.cj.jdbc.Driver + url: + username: + password: druid: - # 涓诲簱鏁版嵁婧� - master: - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true - username: root - password: root - # 浠庡簱鏁版嵁婧� - slave: - # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴 - enabled: false - url: - username: - password: # 鍒濆杩炴帴鏁� initialSize: 5 # 鏈�灏忚繛鎺ユ睜鏁伴噺 @@ -35,6 +38,8 @@ testWhileIdle: true testOnBorrow: false testOnReturn: false + # 娉ㄦ剰杩欎釜鍊煎拰druid鍘熺敓涓嶄竴鑷达紝榛樿鍚姩浜唖tat + filters: stat webStatFilter: enabled: true statViewServlet: diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 2ebdcbd..75093f7 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -1,21 +1,24 @@ # 鏁版嵁婧愰厤缃� spring: + autoconfigure: + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver + dynamic: + datasource: + # 涓诲簱鏁版嵁婧� + master: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true + username: root + password: root + # 浠庡簱鏁版嵁婧� + slave: + driverClassName: com.mysql.cj.jdbc.Driver + url: + username: + password: druid: - # 涓诲簱鏁版嵁婧� - master: - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true - username: root - password: root - # 浠庡簱鏁版嵁婧� - slave: - # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴 - enabled: false - url: - username: - password: # 鍒濆杩炴帴鏁� initialSize: 5 # 鏈�灏忚繛鎺ユ睜鏁伴噺 @@ -35,6 +38,8 @@ testWhileIdle: true testOnBorrow: false testOnReturn: false + # 娉ㄦ剰杩欎釜鍊煎拰druid鍘熺敓涓嶄竴鑷达紝榛樿鍚姩浜唖tat + filters: stat webStatFilter: enabled: true statViewServlet: @@ -58,7 +63,7 @@ # redis 閰嶇疆 redis: # 鍦板潃 - host: 192.168.0.222 + host: localhost # 绔彛锛岄粯璁や负6379 port: 6379 # 鏁版嵁搴撶储寮� diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java deleted file mode 100644 index e70b8cf..0000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.ruoyi.framework.datasource; - -import java.util.Map; -import javax.sql.DataSource; -import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; - -/** - * 鍔ㄦ�佹暟鎹簮 - * - * @author ruoyi - */ -public class DynamicDataSource extends AbstractRoutingDataSource -{ - public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) - { - super.setDefaultTargetDataSource(defaultTargetDataSource); - super.setTargetDataSources(targetDataSources); - super.afterPropertiesSet(); - } - - @Override - protected Object determineCurrentLookupKey() - { - return DynamicDataSourceContextHolder.getDataSourceType(); - } -} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java deleted file mode 100644 index 3572db9..0000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.ruoyi.framework.datasource; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 鏁版嵁婧愬垏鎹㈠鐞� - * - * @author ruoyi - */ -public class DynamicDataSourceContextHolder -{ - public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class); - - /** - * 浣跨敤ThreadLocal缁存姢鍙橀噺锛孴hreadLocal涓烘瘡涓娇鐢ㄨ鍙橀噺鐨勭嚎绋嬫彁渚涚嫭绔嬬殑鍙橀噺鍓湰锛� - * 鎵�浠ユ瘡涓�涓嚎绋嬮兘鍙互鐙珛鍦版敼鍙樿嚜宸辩殑鍓湰锛岃�屼笉浼氬奖鍝嶅叾瀹冪嚎绋嬫墍瀵瑰簲鐨勫壇鏈�� - */ - private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>(); - - /** - * 璁剧疆鏁版嵁婧愮殑鍙橀噺 - */ - public static void setDataSourceType(String dsType) - { - log.info("鍒囨崲鍒皗}鏁版嵁婧�", dsType); - CONTEXT_HOLDER.set(dsType); - } - - /** - * 鑾峰緱鏁版嵁婧愮殑鍙橀噺 - */ - public static String getDataSourceType() - { - return CONTEXT_HOLDER.get(); - } - - /** - * 娓呯┖鏁版嵁婧愬彉閲� - */ - public static void clearDataSourceType() - { - CONTEXT_HOLDER.remove(); - } -} -- Gitblit v1.9.3