前言
在Spring Aop中,我们可以拿到拦截方法的参数,如果能结合spel表达式,就能实现更加灵活的功能。典型的实现有Spring的缓存注解:
|
|
|
|
本文介绍如何在aop编程中解析spel表达式,提供几个通用的方法。
Spring使用自定义注解实现aop的方式这里就不赘述,只着重介绍如何解析spel。
准备
实现非常简单,Spring本身就提供了简便的api,我们只需要获取:
- 方法:
Method method
- 方法参数:
Object[] arguments
- spel表达式:
String spel
这些都能从aop入口方法的参数ProceedingJoinPoint
中得到。
spel表达式显然就是从自定义注解中获取了,而获取方法和参数的方式如下:
获取方法:
获取方法参数值:
解析
然后就是解析spel表达式,首先在aop类中定义两个属性:
根据spel表达式解析参数,得到结果:
总结
上述就是整个解析spel表达式的关键流程,整体来看,aop类的结构是这样的:
以上提供一个基本思路和几个通用的方法(#getMethod
、#parseSpel
),接下来就是大家发挥想象力的时间啦!