使用idea的条件断点快速定位注解的处理类
看代码时会碰到注解的处理类难定位的情况,比如spring的某个注解我们想知道到底是谁在处理他,他起什么作用,通过普通的代码搜索功能不容易找到,比如好用的方法就是条件断点。
比如下断:AccessibleObject类的如下代码
@Override
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {
return AnnotatedElement.super.isAnnotationPresent(annotationClass); //在这里下断点。 也可以下在 getAnnotations getDeclaredAnnotations
}
isAnnotationPresent函数是jdk 类 AccessibleObject里提供的判断是否存在某个注解的方法,可以用户成员变量、方法上的注解。 这里如果对某个注解感兴趣可以设置条件断点,比如找 @Bean的处理类,可以设置断点的 condition 为 annotationClass.name.endsWith(".Bean") 即可。