StringBoot

Spring判断类上是否有某个注解

2021-10-04  本文已影响0人  愚思

在解析时不管是<bean />,还是@Bean都会被包装成BeanDefinition,先被MetadataReader包装,进而再被包装成BeanDefinition,MetadataReader交给了MetadataReaderFactory进行管理。
1、首先拿到SimpleMetadataReaderFactory
2、获取到MetadataReader对象
3、拿到其中的注解元数据AnnotationMetadata对象
4、调用hasAnnotation方法

public void test3() throws IOException {
    SimpleMetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory();
    MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(CircularA.class.getName());
    AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata();
    System.out.println(annotationMetadata.hasAnnotation(Component.class.getName()));
    System.out.println(annotationMetadata.hasAnnotatedMethods(Autowired.class.getName()));
}

5、判断方法上有没有就使用hasAnnotatedMethods


Spring注解的判断
上一篇下一篇

猜你喜欢

热点阅读