java切面获取注解的参数

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();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,切面是一种面向切面编程(AOP)的技术,可以通过它来实现跨多个对象的功能的模块化。而获取参数切面编程中的一个常见需求。 在Java切面编程中,可以通过使用AspectJ来实现获取方法的参数。AspectJ是一个强大的AOP框架,它提供了丰富的注解和表达式来定义切面。 要获取方法的参数,我们可以使用AspectJ提供的@Around注解来编写切面。在@Around注解的方法中,可以通过ProceedingJoinPoint参数获取方法的参数。ProceedingJoinPoint是一个连接点对象,它封装了正在执行的目标方法的相关信息,如参数、方法名等。 通过ProceedingJoinPoint对象的getArgs()方法可以获取方法的参数。getArgs()方法返回的是一个Object数组,其中每个元素表示一个方法的参数。我们可以通过索引来获取具体的参数值。 下面是一个简单的示例: ``` @Around("execution(* com.example.MyClass.myMethod(..))") public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable { Object[] args = joinPoint.getArgs(); // 遍历参数 for (Object arg : args) { // 获取参数值 System.out.println("参数值:" + arg); } // 执行目标方法 Object result = joinPoint.proceed(); // 返回结果 return result; } ``` 上述示例中的切面方法使用@Around注解,并指定了对com.example.MyClass类的myMethod方法进行拦截。在方法中,通过getArgs()方法获取方法的参数,并通过遍历参数数组来获取具体的参数值。然后,使用proceed()方法继续执行目标方法,并返回结果。 通过上述方法,我们就可以在Java中的切面编程中获取方法的参数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值