update 优化数据权限注解切点逻辑,使切点逻辑更清晰

This commit is contained in:
秋辞未寒
2025-07-29 15:52:08 +08:00
parent b379574637
commit 554152635d
2 changed files with 4 additions and 16 deletions

View File

@ -2,21 +2,19 @@ package org.dromara.common.mybatis.aspect;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.annotation.DataPermission;
import org.springframework.aop.support.DynamicMethodMatcher; import org.springframework.aop.support.StaticMethodMatcherPointcut;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Proxy; import java.lang.reflect.Proxy;
/** /**
* 数据权限动态方法匹配器 * 数据权限匹配切点
* *
* @author 秋辞未寒 * @author 秋辞未寒
*/ */
@Slf4j @Slf4j
@SuppressWarnings("all") @SuppressWarnings("all")
public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher { public class DataPermissionPointcut extends StaticMethodMatcherPointcut {
public DataPermissionDynamicMethodMatcher() {}
@Override @Override
public boolean matches(Method method, Class<?> targetClass) { public boolean matches(Method method, Class<?> targetClass) {
@ -38,9 +36,4 @@ public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher {
return targetClassRef.isAnnotationPresent(DataPermission.class); return targetClassRef.isAnnotationPresent(DataPermission.class);
} }
@Override
public boolean matches(Method method, Class<?> targetClass, Object... args) {
return matches(method, targetClass);
}
} }

View File

@ -1,11 +1,8 @@
package org.dromara.common.mybatis.aspect; package org.dromara.common.mybatis.aspect;
import org.aopalliance.aop.Advice; import org.aopalliance.aop.Advice;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.springframework.aop.Pointcut; import org.springframework.aop.Pointcut;
import org.springframework.aop.support.AbstractPointcutAdvisor; import org.springframework.aop.support.AbstractPointcutAdvisor;
import org.springframework.aop.support.ComposablePointcut;
import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;
/** /**
* 数据权限注解切面定义 * 数据权限注解切面定义
@ -20,9 +17,7 @@ public class DataPermissionPointcutAdvisor extends AbstractPointcutAdvisor {
public DataPermissionPointcutAdvisor() { public DataPermissionPointcutAdvisor() {
this.advice = new DataPermissionAdvice(); this.advice = new DataPermissionAdvice();
AnnotationMatchingPointcut matchingPointcut = new AnnotationMatchingPointcut(DataPermission.class, true); this.pointcut = new DataPermissionPointcut();
DataPermissionDynamicMethodMatcher matcher = new DataPermissionDynamicMethodMatcher();
this.pointcut = new ComposablePointcut(matcher).union(matchingPointcut);
} }
@Override @Override