| | |
| | | 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;
|
| | |
| | | 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;
|
| | |
| | | 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);
|
| | | }
|
| | | }
|