Spring反射:从代理方法

时间:2018-01-30 15:05:59

标签: spring

考虑使用代理类Method上的MyClass myMethod。它的名称更改类似于CGLIB$myMethod$,并且原始方法的注释不可用。

我需要找到带注释myMethod的方法@MyAnnotation

Method method = ...
method.getName().contains("$myMethod$")) && method.findAnnotation<MyAnnotation>() != null

条件的第一部分即使有点hacky也在工作,但是找不到注释。有没有办法从代理的方法访问原始方法?

1 个答案:

答案 0 :(得分:1)

您是否考虑过在MyClass上创建一个包装器/装饰器,而后者将成为一个代理,而MyClass实例将是一个常规(非代理)类?

UPD:您也可以尝试AopProxyUtils.ultimateTargetClass(...)AnnotationUtils.findAnnotation(...)方法