修改数据源类型优先级,先根据方法,再根据类
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| package com.ruoyi.framework.aspectj; | ||||
|  | ||||
| import java.lang.reflect.Method; | ||||
| import java.util.Objects; | ||||
| import org.aspectj.lang.ProceedingJoinPoint; | ||||
| import org.aspectj.lang.annotation.Around; | ||||
| import org.aspectj.lang.annotation.Aspect; | ||||
| @@ -8,6 +8,7 @@ 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.utils.StringUtils; | ||||
| @@ -60,17 +61,12 @@ public class DataSourceAspect | ||||
|     public DataSource getDataSource(ProceedingJoinPoint point) | ||||
|     { | ||||
|         MethodSignature signature = (MethodSignature) point.getSignature(); | ||||
|         Class<? extends Object> targetClass = point.getTarget().getClass(); | ||||
|         DataSource targetDataSource = targetClass.getAnnotation(DataSource.class); | ||||
|         if (StringUtils.isNotNull(targetDataSource)) | ||||
|         DataSource dataSource = AnnotationUtils.findAnnotation(signature.getMethod(), DataSource.class); | ||||
|         if (Objects.nonNull(dataSource)) | ||||
|         { | ||||
|             return targetDataSource; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Method method = signature.getMethod(); | ||||
|             DataSource dataSource = method.getAnnotation(DataSource.class); | ||||
|             return dataSource; | ||||
|         } | ||||
|  | ||||
|         return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -10,7 +10,9 @@ import com.ruoyi.framework.aspectj.lang.enums.DataSourceType; | ||||
|  | ||||
| /** | ||||
|  * 自定义多数据源切换注解 | ||||
|  *  | ||||
|  * | ||||
|  * 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准 | ||||
|  * | ||||
|  * @author ruoyi | ||||
|  */ | ||||
| @Target({ ElementType.METHOD, ElementType.TYPE }) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user