很奇怪的问题:
1、定义了一个注解,主要用于Method
2、在Service的Method上添加注解
3、对Service通过Enhancer.enhance()进行增强
4、在Config中通过addGlobalServiceInterceptor添加业务层拦截器
5、在拦截器中获取Method的注解:
public void intercept(Invocation inv) { Method method = inv.getMethod(); Annotation[] annos = method.getAnnotations(); System.out.println(annos.length); }
问题就出在上面,有的Method明明有注解,却返回空数组
调试跟踪inv返回的method,发现其中的annotations是空的
事实上这个method确实有注解。。。
但并不是所有的都返回空数组,有的Service确实能返回
仔细比较过两个Method,调用的都是同样的注解
直接懵比了
以下是定义注解的方法:
@Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD })
不知道还有什么原因能引起这种情况,进过坑的老铁快支支招
项目:JFinal