@Import注解

323 阅读1分钟
  1. 没有被任何spring相关的配置标记的任意的包路径下的Bean.class(Id默认为全类名)。同被@Bean标注的方法返回值(id默认为方法名)
  2.  实现ImportSelector的Bean,该场景下可以通过AnnotationMetadata类获取引入该Bean的类的所有注解,方法的返回值即为需要添加到spring容器中的bean
    1. 返回值中不有好汉package的全路径即返回值中的元素必须是Class的全路径
    2. 返回值中不能包含已经被Spring容器管理的Bean的Class的全路径  

      public String[] selectImports(AnnotationMetadata importingClassMetadata)
  3. 实现ImportBeanDefinitionRegistrar的Bean,该场景下可以获取引入该Bean的类的所有注解即AnnotationMetadata类;可以通过BeanDefinitionRegistry.registerBeanDefinition手工注册Bean,可以通过BeanDefinitionRegistry对BeanDefinition进行增删改查操作。

    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry)