Browse Source

动态数据源

zouxuan 11 months ago
parent
commit
7e35dd7f12

+ 4 - 5
dynamic-datasource/pom.xml

@@ -16,27 +16,26 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <dependencies>
-
 		<dependency>
 			<groupId>org.mybatis.spring.boot</groupId>
 			<artifactId>mybatis-spring-boot-starter</artifactId>
 		</dependency>
-
+      <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-aop</artifactId>
+      </dependency>
 		<dependency>
 			<groupId>com.alibaba</groupId>
 			<artifactId>druid-spring-boot-starter</artifactId>
 		</dependency>
-
 		<dependency>
 			<groupId>javax.servlet</groupId>
 			<artifactId>javax.servlet-api</artifactId>
 		</dependency>
-
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
           <version>3.8.1</version>
       </dependency>
-
   </dependencies>
 </project>

+ 13 - 5
dynamic-datasource/src/main/java/com/yonge/datasource/DataSourceConfig.java

@@ -32,10 +32,17 @@ public class DataSourceConfig {
 	@Value("${mybatis.configLocation}")
 	private Resource configLocation;
 
-	@Bean("master")
+	@Bean("mec")
 	@Primary
-	@ConfigurationProperties(prefix = "spring.datasource") // application.yml中对应属性的前缀
-	public DataSource master() {
+	@ConfigurationProperties(prefix = "spring.datasource.mec") // application.yml中对应属性的前缀
+	public DataSource mec() {
+		return DruidDataSourceBuilder.create().build();
+	}
+
+	@Bean("oa")
+	@Primary
+	@ConfigurationProperties(prefix = "spring.datasource.oa") // application.yml中对应属性的前缀
+	public DataSource oa() {
 		return DruidDataSourceBuilder.create().build();
 	}
 
@@ -43,9 +50,10 @@ public class DataSourceConfig {
 	public DataSource dynamicDataSource() {
 		DynamicRoutingDataSource dynamicDataSource = new DynamicRoutingDataSource();
 		Map<Object, Object> dataSourceMap = new HashMap<>();
-		dataSourceMap.put("master", master());
+		dataSourceMap.put("mec", mec());
+		dataSourceMap.put("oa", oa());
 		// 将 master 数据源作为默认指定的数据源
-		dynamicDataSource.setDefaultTargetDataSource(master());
+		dynamicDataSource.setDefaultTargetDataSource(oa());
 		dynamicDataSource.setTargetDataSources(dataSourceMap);
 		return dynamicDataSource;
 	}

+ 13 - 0
dynamic-datasource/src/main/java/com/yonge/datasource/DbAnnotation.java

@@ -0,0 +1,13 @@
+package com.yonge.datasource;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ ElementType.METHOD, ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface DbAnnotation {
+
+    String value() default "mec";
+}

+ 4 - 0
dynamic-datasource/src/main/java/com/yonge/datasource/DynamicDataSourceAspect.java

@@ -0,0 +1,4 @@
+package com.yonge.datasource;
+
+public class DynamicDataSourceAspect {
+}