1、注解定义
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface UserDataAuthControl
{
/**
* 数据类型DataTypeConstant值
*/
String authType();
/**
* 是否有团队权限
*/
boolean team() default false;
/**
* 获取业务主键的方法,团队管理权限判断需要
*/
String businessId() default "#{#id}";
/**
* 获取负责人主键的方法
*/
String managerId() default "#{#managerId}";
}
2、切面获取参数
//从切面织入点处通过反射机制获取织入点处的方法
MethodSignature signature= (MethodSignature) joinPoint.getSignature();
//获取切入点所在的方法
Method method=signature.getMethod();
//获取控制信息
UserDataAuthControl userDataAuthControl = method.getAnnotation(UserDataAuthControl.class);
String authType = userDataAuthControl.authType();
String businessId = userDataAuthControl.businessId();