@import是Spring的一个底层注解。
在应用中,有时没有把某个类注入到IOC容器中,但在运用的时候需要获取该类对应的bean,此时就需要用到@Import注解。
有一个Person类,且未注入容器:
package com.example;
Class Person{
public void sayhello(){
System.out.println("Hello world");
}
}
在测试类中:
import com.example.Person;
@Autowired
private ApplicationContext context;
@Import(Person.class)
@Test
public void apptest(){
Person person = (Person)context.getBean("com.example.person");
//调用bean的方法
person.sayHello();
}
需要注意的是:
@Import({ 要导入的容器中的组件 } ):容器会自动注册这个组件,但是id默认是全类名
测试结果:
Hello world
当然,也可以利用@Configuration和@bean将Person类注解声明为一个配置类,之后利用@Import导入配置类名称,测试结果相同。