@Import注解
@Import注解通过快速导入的方式把实例加入到spring的IOC容器中。最常用来导入第三方jar包。
@Import的常见用法
- 直接引用class类(包含@Component注解修饰的类,例如@Configuration注解修饰类),容器会自动注册这个组件,id默认是类全名
@Import({类名.class, 类名.class})
public class Test {
}
- ImportSelector的方式,返回需要导入组件的全名类数组。
它的前提就是一个类要实现ImportSelector接口
public class MyTest implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata annotationMetadata) {
return new String[]{"com.pch.Test.Test3"};
}
}
@Import({MyTest.class})
public class Test {
}
- ImportBeanDefinitionRegistrar,需要手动注册bean到容器
public class MyTest implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
//指定bean定义信息
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(TestDemo.class);
//注册一个bean指定bean名字(id)
beanDefinitionRegistry.registerBeanDefinition("Test3", rootBeanDefinition);
}
}
@Import({MyTest.class})
public class Test {
}