A.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package a;
  2. import com.gxzc.zen.orm.DynamicDataSource;
  3. import com.gxzc.zen.orm.DynamicMultipleDataSource;
  4. import kotlin.TypeCastException;
  5. import kotlin.jvm.internal.Intrinsics;
  6. import org.aspectj.lang.JoinPoint;
  7. import org.aspectj.lang.Signature;
  8. import org.aspectj.lang.annotation.Aspect;
  9. import org.aspectj.lang.annotation.Before;
  10. import org.aspectj.lang.reflect.MethodSignature;
  11. import org.jetbrains.annotations.NotNull;
  12. import org.springframework.core.annotation.Order;
  13. import org.springframework.stereotype.Component;
  14. import java.lang.reflect.Method;
  15. import java.util.Objects;
  16. @Aspect
  17. @Order(-1)
  18. @Component
  19. public class A {
  20. @Before("execution(* com.gxzc.zen.api.sys.*.*Service.*(..))")
  21. public void dataSourceSys(@NotNull JoinPoint joinPoint) {
  22. Intrinsics.checkParameterIsNotNull(joinPoint, "joinPoint");
  23. this.setDataSource(joinPoint, "sysDataSource");
  24. }
  25. @Before("execution(* com.gxzc.zen.api.rec.*.*Service.*(..))")
  26. public void dataSourceRec(@NotNull JoinPoint joinPoint) {
  27. Intrinsics.checkParameterIsNotNull(joinPoint, "joinPoint");
  28. this.setDataSource(joinPoint, "recDataSource");
  29. }
  30. private void setDataSource(JoinPoint joinPoint, String defaultKey) {
  31. DynamicDataSource dynamicDataSource = this.currentMethod(joinPoint).getAnnotation(DynamicDataSource.class);
  32. if (Objects.isNull(dynamicDataSource)) {
  33. DynamicMultipleDataSource.Companion.setDataSource(defaultKey);
  34. } else {
  35. DynamicMultipleDataSource.Companion.setDataSource(dynamicDataSource.value());
  36. }
  37. }
  38. private Method currentMethod(JoinPoint joinPoint) {
  39. Signature var10000 = joinPoint.getSignature();
  40. if (var10000 == null) {
  41. throw new TypeCastException("null cannot be cast to non-null type org.aspectj.lang.reflect.MethodSignature");
  42. } else {
  43. Method var2 = ((MethodSignature) var10000).getMethod();
  44. Intrinsics.checkExpressionValueIsNotNull(var2, "(joinPoint.signature as MethodSignature).method");
  45. return var2;
  46. }
  47. }
  48. }