소스 검색

支持多数据源切换

RuoYi 5 년 전
부모
커밋
e4a6e5ef19

+ 9 - 0
pom.xml

@@ -27,6 +27,8 @@
27 27
         <tobato.version>1.26.5</tobato.version>
28 28
         <kaptcha.version>2.3.2</kaptcha.version>
29 29
         <pagehelper.boot.version>1.3.0</pagehelper.boot.version>
30
+        <druid.version>1.2.2</druid.version>
31
+        <dynamic-ds.version>3.2.1</dynamic-ds.version>
30 32
         <commons.io.version>2.5</commons.io.version>
31 33
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
32 34
         <velocity.version>1.7</velocity.version>
@@ -182,6 +184,13 @@
182 184
                 <artifactId>ruoyi-common-datascope</artifactId>
183 185
                 <version>${ruoyi.version}</version>
184 186
             </dependency>
187
+            
188
+            <!-- 多数据源 -->
189
+            <dependency>
190
+                <groupId>com.ruoyi</groupId>
191
+                <artifactId>ruoyi-common-datasource</artifactId>
192
+                <version>${ruoyi.version}</version>
193
+            </dependency>
185 194
 			
186 195
             <!-- 日志记录 -->
187 196
             <dependency>

+ 1 - 0
ruoyi-common/pom.xml

@@ -15,6 +15,7 @@
15 15
         <module>ruoyi-common-swagger</module>
16 16
         <module>ruoyi-common-security</module>
17 17
         <module>ruoyi-common-datascope</module>
18
+		<module>ruoyi-common-datasource</module>
18 19
     </modules>
19 20
 
20 21
     <artifactId>ruoyi-common</artifactId>

+ 35 - 0
ruoyi-common/ruoyi-common-datasource/pom.xml

@@ -0,0 +1,35 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+         xmlns="http://maven.apache.org/POM/4.0.0"
4
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+    <parent>
6
+        <groupId>com.ruoyi</groupId>
7
+        <artifactId>ruoyi-common</artifactId>
8
+        <version>2.3.0</version>
9
+    </parent>
10
+    <modelVersion>4.0.0</modelVersion>
11
+    
12
+    <artifactId>ruoyi-common-datasource</artifactId>
13
+	
14
+    <description>
15
+        ruoyi-common-datasource多数据源
16
+    </description>
17
+
18
+    <dependencies>
19
+
20
+		<!-- Druid -->
21
+        <dependency>
22
+            <groupId>com.alibaba</groupId>
23
+            <artifactId>druid-spring-boot-starter</artifactId>
24
+            <version>${druid.version}</version>
25
+        </dependency>
26
+
27
+        <!-- Dynamic DataSource -->
28
+        <dependency>
29
+            <groupId>com.baomidou</groupId>
30
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
31
+            <version>${dynamic-ds.version}</version>
32
+        </dependency>
33
+
34
+    </dependencies>
35
+</project>

+ 22 - 0
ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Master.java

@@ -0,0 +1,22 @@
1
+package com.ruoyi.common.datasource.annotation;
2
+
3
+import java.lang.annotation.Documented;
4
+import java.lang.annotation.ElementType;
5
+import java.lang.annotation.Retention;
6
+import java.lang.annotation.RetentionPolicy;
7
+import java.lang.annotation.Target;
8
+import com.baomidou.dynamic.datasource.annotation.DS;
9
+
10
+/**
11
+ * 主库数据源
12
+ * 
13
+ * @author ruoyi
14
+ */
15
+@Target({ ElementType.TYPE, ElementType.METHOD })
16
+@Retention(RetentionPolicy.RUNTIME)
17
+@Documented
18
+@DS("master")
19
+public @interface Master
20
+{
21
+
22
+}

+ 22 - 0
ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/annotation/Slave.java

@@ -0,0 +1,22 @@
1
+package com.ruoyi.common.datasource.annotation;
2
+
3
+import java.lang.annotation.Documented;
4
+import java.lang.annotation.ElementType;
5
+import java.lang.annotation.Retention;
6
+import java.lang.annotation.RetentionPolicy;
7
+import java.lang.annotation.Target;
8
+import com.baomidou.dynamic.datasource.annotation.DS;
9
+
10
+/**
11
+ * 从库数据源
12
+ * 
13
+ * @author ruoyi
14
+ */
15
+@Target({ ElementType.TYPE, ElementType.METHOD })
16
+@Retention(RetentionPolicy.RUNTIME)
17
+@Documented
18
+@DS("slave")
19
+public @interface Slave
20
+{
21
+
22
+}

+ 7 - 1
ruoyi-modules/ruoyi-system/pom.xml

@@ -54,7 +54,13 @@
54 54
             <artifactId>mysql-connector-java</artifactId>
55 55
         </dependency>
56 56
         
57
-        <!-- RuoYi Common Datascope -->
57
+        <!-- RuoYi Common DataSource -->
58
+        <dependency>
59
+            <groupId>com.ruoyi</groupId>
60
+            <artifactId>ruoyi-common-datasource</artifactId>
61
+        </dependency>
62
+        
63
+        <!-- RuoYi Common DataScope -->
58 64
         <dependency>
59 65
             <groupId>com.ruoyi</groupId>
60 66
             <artifactId>ruoyi-common-datascope</artifactId>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 6 - 6
sql/ry_config_20201120.sql