1.@Import用在没有放入到容器的类上
要导入的类
public class ImportB {
public void hello(){
System.out.println("world");
}
}
没有放入到容器的类
@Import({ImportB.class})
public class ImportA {
}
测试代码
@Autowired
ImportB b;
@Test
public void contextLoads() {
b.hello();
}
结果:不能导入ImportB类
2.@Autowired用在没有放入到容器的类中
导入容器的类
@Component
public class ImportB {
public void hello(){
System.out.println("world");
}
}
没有放入到容器的类
public class ImportA {
@Autowired
ImportB importB;
public void test(){
importB.hello();
}
}
测试代码
@Test
public void contextLoads() {
ImportA importA = new ImportA();
importA.test();
}
结果:ImportB类没有注入到ImportA中
3.@Import用在没有放入到容器的类上,子类放入了容器
需要导入的类
public class ImportB {
public void hello(){
System.out.println("world");
}
}
没有放入到容器中的类
@Import({ImportB.class})
public class ImportA {
}
放入到容器中的子类
@Component
public class ImportC extends ImportA{
@Autowired
ImportB importB;
public void test(){
importB.hello();
}
}
测试代码
@Autowired
ImportC c;
@Test
public void contextLoads() {
c.test();
}
结果:能导入ImportB类