@Import使用方法
准备工作:需要三个类
1.主程序类,用于执行程序
2.Myconfig类,作为导入组件时使用的类
3.User类,充当被导入的组件
主程序类:
/**
* 这是一个主程序类
* @SpringBootApplication:表明这是一个SpringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
//1、返回我们ioc容器
ConfigurableApplicationContext run =
SpringApplication.run(MainApplication.class, args);
}
}
Myconfig类:
@Configuration
public class Myconfig {
}
User类:
public class User {
private String name;
private Integer age;
public User(){
}
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
@Import通过快速导入的方式实现把实例加入spring的IOC容器中
@Import需要写在容器中的一个组件的类上,这个类可以是其他组件,也可以是controller都行
Import直接翻译过来就有导入的意思。
进入@Import注解可以看到,它是一个class数组。也就是说我们可以通过该注解导入非常多的组件。
首先我们可以导入自己写的组件,比如User类
然后在主程序类打印出容器中创建的User类型组件
//获取组件
String[] beanNamesForType = run.getBeanNamesForType(User.class);
for (String s : beanNamesForType){
System.out.println("---the s:"+s);
}
通过左下角的红框中可以看到,刚刚导入的User组件已经创建成功了,它的名称默认为该类的全类名。
这是第一种可导入的类:导入自己编写的类。
还有第二种:可以导入jar包当中的类。
比如我们导入一个jar包中的DBHelper类
只需要将它的类名写再@Import中就可以了
同时呢,在主程序中打印出容器中DBHelper类型的组件
DBHelper bean = run.getBean(DBHelper.class);
System.out.println("---the bean:"+bean);
可以看到啊,容器中的组件都成功导入了,以上就是@Import的常规操作。