Prechádzať zdrojové kódy

支持多数据源切换

RuoYi 4 rokov pred
rodič
commit
e4a6e5ef19

+ 9 - 0
pom.xml

@@ -27,6 +27,8 @@
         <tobato.version>1.26.5</tobato.version>
         <kaptcha.version>2.3.2</kaptcha.version>
         <pagehelper.boot.version>1.3.0</pagehelper.boot.version>
+        <druid.version>1.2.2</druid.version>
+        <dynamic-ds.version>3.2.1</dynamic-ds.version>
         <commons.io.version>2.5</commons.io.version>
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
         <velocity.version>1.7</velocity.version>
@@ -182,6 +184,13 @@
                 <artifactId>ruoyi-common-datascope</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
+            
+            <!-- 多数据源 -->
+            <dependency>
+                <groupId>com.ruoyi</groupId>
+                <artifactId>ruoyi-common-datasource</artifactId>
+                <version>${ruoyi.version}</version>
+            </dependency>
 			
             <!-- 日志记录 -->
             <dependency>

+ 1 - 0
ruoyi-common/pom.xml

@@ -15,6 +15,7 @@
         <module>ruoyi-common-swagger</module>
         <module>ruoyi-common-security</module>
         <module>ruoyi-common-datascope</module>
+		<module>ruoyi-common-datasource</module>
     </modules>
 
     <artifactId>ruoyi-common</artifactId>

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

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.ruoyi</groupId>
+        <artifactId>ruoyi-common</artifactId>
+        <version>2.3.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    
+    <artifactId>ruoyi-common-datasource</artifactId>
+	
+    <description>
+        ruoyi-common-datasource多数据源
+    </description>
+
+    <dependencies>
+
+		<!-- Druid -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>${druid.version}</version>
+        </dependency>
+
+        <!-- Dynamic DataSource -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>${dynamic-ds.version}</version>
+        </dependency>
+
+    </dependencies>
+</project>

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

@@ -0,0 +1,22 @@
+package com.ruoyi.common.datasource.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import com.baomidou.dynamic.datasource.annotation.DS;
+
+/**
+ * 主库数据源
+ * 
+ * @author ruoyi
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@DS("master")
+public @interface Master
+{
+
+}

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

@@ -0,0 +1,22 @@
+package com.ruoyi.common.datasource.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import com.baomidou.dynamic.datasource.annotation.DS;
+
+/**
+ * 从库数据源
+ * 
+ * @author ruoyi
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@DS("slave")
+public @interface Slave
+{
+
+}

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

@@ -54,7 +54,13 @@
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         
-        <!-- RuoYi Common Datascope -->
+        <!-- RuoYi Common DataSource -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-datasource</artifactId>
+        </dependency>
+        
+        <!-- RuoYi Common DataScope -->
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common-datascope</artifactId>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 6 - 6
sql/ry_config_20201120.sql