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 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.Proxy;
/**
* 数据权限动态方法匹配器
* 数据权限匹配切点
*
* @author 秋辞未寒
*/
@Slf4j
@SuppressWarnings("all")
public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher {
public DataPermissionDynamicMethodMatcher() {}
public class DataPermissionPointcut extends StaticMethodMatcherPointcut {
@Override
public boolean matches(Method method, Class<?> targetClass) {
@ -38,9 +36,4 @@ public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher {
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;
import org.aopalliance.aop.Advice;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.springframework.aop.Pointcut;
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() {
this.advice = new DataPermissionAdvice();
AnnotationMatchingPointcut matchingPointcut = new AnnotationMatchingPointcut(DataPermission.class, true);
DataPermissionDynamicMethodMatcher matcher = new DataPermissionDynamicMethodMatcher();
this.pointcut = new ComposablePointcut(matcher).union(matchingPointcut);
this.pointcut = new DataPermissionPointcut();
}
@Override