疯狂的狮子li
2021-10-11 741a5b275ba3d1a9099d2c5dce94e7a192db66c1
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
@@ -1,8 +1,8 @@
package com.ruoyi.framework.aspectj;
import cn.hutool.core.lang.Validator;
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;
@@ -17,15 +17,15 @@
/**
 * 多数据源处理
 *
 * @author ruoyi
 * @author Lion Li
 */
@Aspect
@Order(1)
@Order(-500)
@Component
public class DataSourceAspect {
   @Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)"
      + "|| @within(com.ruoyi.common.annotation.DataSource)")
         + "|| @within(com.ruoyi.common.annotation.DataSource)")
   public void dsPointCut() {
   }
@@ -33,8 +33,10 @@
   public Object around(ProceedingJoinPoint point) throws Throwable {
      DataSource dataSource = getDataSource(point);
      if (Validator.isNotNull(dataSource)) {
         DynamicDataSourceContextHolder.push(dataSource.value().name());
      if (StringUtils.isNotNull(dataSource)) {
         DynamicDataSourceContextHolder.poll();
         String source = dataSource.value().getSource();
         DynamicDataSourceContextHolder.push(source);
      }
      try {
@@ -57,4 +59,5 @@
      return AnnotationUtils.findAnnotation(signature.getDeclaringType(), DataSource.class);
   }
}