spel解析AOP注解 方法出入参数

本文介绍了如何在Spring AOP编程中解析SpEL表达式,通过ProceedingJoinPoint获取方法和参数,利用Spring提供的API解析注解中的SpEL表达式。同时展示了如何在@AfterReturning后置增强中处理注解表达式的出参,包括对JSONPath的使用来处理复杂结构的数据。示例代码详细展示了方法和参数获取、SpEL解析以及注解处理的实现过程。

本文介绍如何在aop编程中解析spel表达式,实现非常简单,Spring本身就提供了简便的api,我们只需要获取:

方法:Method method
方法参数:Object[] arguments
spel表达式:String spel

这些都能从aop入口方法的参数ProceedingJoinPoint中得到。
spel表达式显然就是从自定义注解中获取了,而获取方法和参数的方式如下:

获取方法:

private Method getMethod(ProceedingJoinPoint joinPoint) {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        if (method.getDeclaringClass().isInterface()) {
            try {
                method = joinPoint
                        .getTarget()
                        .getClass()
                        .getDeclaredMethod(joinPoint.getSignature().getName(),
                                method.getParameterTypes());
            } catch (SecurityException | NoSuchMethodException e) {
                throw new RuntimeException(e);
            }
        }
        return method;
    }

获取方法参数值:

Object[] argumen
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值