简述

Import注解在4.2之前只支持导入配置类
在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean。
在 spring boot 的配置类中的使用比较多。

测试

@Import 的自动导入功能

1.一个配置类

1
2
3
4
5
6
@Configuration
@Import(ImportDemo.class)
public class ImportConfig {


}

2.一个普通没有加任何注解的类

1
2
3
4
5
public class ImportDemo {
public void doSomething () {
System.out.println("ImportDemo.doSomething()");
}
}

3.测试类

1
2
3
4
5
6
7
8
9
10
public class TestMain {

public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext("com.springboot.importtest");
ImportDemo importDemo = context.getBean(ImportDemo.class);
importDemo.doSomething();
}

}

注掉配置类的 @Import ,再运行测试类,则报错。

证明,ImportDemo 是由 @Import 动态注入到 spring 容器中的