在我的实现MyLogFilter 的方法中。想得到这个注解 myAnnotation 对象却一直为null。
@Slf4j
@Activate(group = {Constants.PROVIDER}, order = 1000)
public class MyLogFilter implements Filter {
@SneakyThrows
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
MyAnnotation myAnnotation = invoker.getInterface().getAnnotation(MyAnnotation.class);
}
经过分析,Spring在处理中,可能是因为我的项目有事务,serviceImpl的方法被代理后直接得不到了。换一个思路:先得到自己的父类,然后通过父类得到真实的自己
String methodName = invocation.getMethodName();
Method declaredMethod = invocation.getClass().getDeclaredMethod(methodName, invocation.getParameterTypes());
MyAnnotation annotation = declaredMethod.getAnnotation(MyAnnotation.class);