Spring框架中的@Import注解

Posted 源码王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架中的@Import注解相关的知识,希望对你有一定的参考价值。

@Import注解的作用和在使用spring的xml配置时用到的<import/>类似。但应注意是@Import在使用时必须要保证能被IOC容器扫描到,所以通常它会和@Configuration或者@ComponentScan配套使用。

@Import可以用来如下四种方式的导入:

  1. 带有@Configuration注解的类
  2. 实现了ImportSelector接口的类
  3. 实现了ImportBeanDefinitionRegistrar接口的类
  4. 被IOC容器注册的bean的class 

@Import在使用时可以声明在JAVA类上,或者作为元注解使用(即声明在其他注解上)

下面是@Import的源码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Import {

    /**
     * {@link Configuration}, {@link ImportSelector}, {@link ImportBeanDefinitionRegistrar}
     * or regular component classes to import.
     */
    Class<?>[] value();

}

 下面是@Import作为元注解进行使用的场景:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import({AuthorizationServerEndpointsConfiguration.class, AuthorizationServerSecurityConfiguration.class})
public @interface EnableAuthorizationServer {

}

 

以上是关于Spring框架中的@Import注解的主要内容,如果未能解决你的问题,请参考以下文章

Spring注解之@Import用法解析

spring4.1.8扩展实战之八:Import注解

@Import与@ImportResource注解的解读

五Spring中的@Import注解

spring 学习 22 @Import注解的使用

Spring Boot框架中的Conditional系列注解