From 2c2dad24d59b37df254d1c003d6c3e1119b51d6c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 11 八月 2021 14:28:05 +0800
Subject: [PATCH] update 更新 阿里云 maven源 新地址

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java |  134 ++++++++++++++++++++------------------------
 1 files changed, 62 insertions(+), 72 deletions(-)

diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
index 4648fcd..47e7742 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
@@ -1,72 +1,62 @@
-package com.ruoyi.framework.aspectj;
-
-import java.util.Objects;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.annotation.AnnotationUtils;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-import com.ruoyi.common.annotation.DataSource;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder;
-
-/**
- * 澶氭暟鎹簮澶勭悊
- * 
- * @author ruoyi
- */
-@Aspect
-@Order(1)
-@Component
-public class DataSourceAspect
-{
-    protected Logger logger = LoggerFactory.getLogger(getClass());
-
-    @Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)"
-            + "|| @within(com.ruoyi.common.annotation.DataSource)")
-    public void dsPointCut()
-    {
-
-    }
-
-    @Around("dsPointCut()")
-    public Object around(ProceedingJoinPoint point) throws Throwable
-    {
-        DataSource dataSource = getDataSource(point);
-
-        if (StringUtils.isNotNull(dataSource))
-        {
-            DynamicDataSourceContextHolder.setDataSourceType(dataSource.value().name());
-        }
-
-        try
-        {
-            return point.proceed();
-        }
-        finally
-        {
-            // 閿�姣佹暟鎹簮 鍦ㄦ墽琛屾柟娉曚箣鍚�
-            DynamicDataSourceContextHolder.clearDataSourceType();
-        }
-    }
-
-    /**
-     * 鑾峰彇闇�瑕佸垏鎹㈢殑鏁版嵁婧�
-     */
-    public DataSource getDataSource(ProceedingJoinPoint point)
-    {
-        MethodSignature signature = (MethodSignature) point.getSignature();
-        DataSource dataSource = AnnotationUtils.findAnnotation(signature.getMethod(), DataSource.class);
-        if (Objects.nonNull(dataSource))
-        {
-            return dataSource;
-        }
-
-        return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class);
-    }
-}
+package com.ruoyi.framework.aspectj;
+
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.utils.StringUtils;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+
+/**
+ * 澶氭暟鎹簮澶勭悊
+ *
+ * @author ruoyi
+ */
+@Aspect
+@Order(-500)
+@Component
+public class DataSourceAspect {
+
+	@Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)"
+		+ "|| @within(com.ruoyi.common.annotation.DataSource)")
+	public void dsPointCut() {
+	}
+
+	@Around("dsPointCut()")
+	public Object around(ProceedingJoinPoint point) throws Throwable {
+		DataSource dataSource = getDataSource(point);
+
+		if (StringUtils.isNotNull(dataSource)) {
+			DynamicDataSourceContextHolder.poll();
+			String source = dataSource.value().getSource();
+			DynamicDataSourceContextHolder.push(source);
+		}
+
+		try {
+			return point.proceed();
+		} finally {
+			// 閿�姣佹暟鎹簮 鍦ㄦ墽琛屾柟娉曚箣鍚�
+			DynamicDataSourceContextHolder.clear();
+		}
+	}
+
+	/**
+	 * 鑾峰彇闇�瑕佸垏鎹㈢殑鏁版嵁婧�
+	 */
+	public DataSource getDataSource(ProceedingJoinPoint point) {
+		MethodSignature signature = (MethodSignature) point.getSignature();
+		DataSource dataSource = AnnotationUtils.findAnnotation(signature.getMethod(), DataSource.class);
+		if (Objects.nonNull(dataSource)) {
+			return dataSource;
+		}
+
+		return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class);
+	}
+}

--
Gitblit v1.9.3