看代码时会碰到注解的处理类难定位的情况,比如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") 即可。

 使用idea的条件断点快速定位注解的处理类

 

使用idea的条件断点快速定位注解的处理类

 

使用idea的条件断点快速定位注解的处理类

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-27
  • 2021-04-29
  • 2021-08-15
  • 2021-08-17
  • 2022-02-26
猜你喜欢
  • 2022-12-23
  • 2021-08-10
  • 2021-10-28
  • 2022-02-25
  • 2022-12-23
  • 2021-08-04
  • 2021-11-17
相关资源
相似解决方案