Annotation Interface Import


@Target(TYPE) @Retention(RUNTIME) @Documented public @interface Import
Indicates one or more component classes to import — typically @Configuration classes.

Provides functionality equivalent to the <import/> element in Spring XML.

Allows for importing @Configuration classes, ImportSelector, ImportBeanDefinitionRegistrar, and BeanRegistrar implementations, as well as regular component classes (analogous to AnnotationConfigApplicationContext.register(java.lang.Class<?>...)).

@Bean definitions declared in imported @Configuration classes should be accessed by using @Autowired injection. Either the bean itself can be autowired, or the configuration class instance declaring the bean can be autowired. The latter approach allows for explicit, IDE-friendly navigation between @Configuration class methods.

May be declared directly at the class level or as a meta-annotation. @Import annotations declared directly at the class level are processed after @Import annotations declared as meta-annotations, which allows directly declared imports to override beans registered via @Import meta-annotations.

As of Spring Framework 7.0, @Import annotations declared on interfaces implemented by @Configuration classes are also supported. Locally declared @Import annotations are processed after @Import annotations on interfaces, which allows local imports to override beans registered via @Import annotations inherited from interfaces.

If XML or other non-@Configuration bean definition resources need to be imported, use the @ImportResource annotation instead.

Since:
3.0
Author:
Chris Beams, Juergen Hoeller
See Also: