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