有关网站建设的毕业设计,外卖网站的建设与推广,抖音关键词排名软件,wordpress标签里面没文章一、Import解释
Import只能用在类上
Import通过快速导入的方式实现把实例加入spring的IOC容器中
Import注解可以用于导入第三方包
二、Import有三种使用方法
Import的三种用法#xff1a; 1、直接填class数组方式
直接填对应的class数组#xff0c;class数组可以有0到多个… 一、Import解释
Import只能用在类上
Import通过快速导入的方式实现把实例加入spring的IOC容器中
Import注解可以用于导入第三方包
二、Import有三种使用方法
Import的三种用法 1、直接填class数组方式
直接填对应的class数组class数组可以有0到多个
Configuration
Import({Cat.class,Person.class})
public class MyConfig {
}
import的bean都将加入到spring容器中这些在容器中bean名称是该类的全类名
可以从ioc容器中取出来
Autowired
private Person person;
Test
public void testImport() {
System.out.println(person);
}
2、实现ImportSelector接口
这种方式要实现ImportSelector接口。
创建MyImportSelector并实现ImportSelector接口
public class MyImportSelector implements ImportSelector {
Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {//获取被import的类上的所有注解SetString annotationTypes annotationMetadata.getAnnotationTypes();System.out.println(annotationTypes);return new String[]{com.gly.im.Cat};}
}
将此实现类MyImportSelector添加到容器中
Configuration
Import({MyImportSelector.class,Person.class})
public class MyConfig {
}
将Cat和Person都会注册到ioc容器中
测试
Autowired
private Person person;
Autowired
private Cat cat;
Test
public void testImport() {
System.out.println(person);
}
实现接口的selectImports方法中需要注意三点
返回值 实际上要导入到容器中的组件全类名
参数 AnnotationMetadata表示当前被Import注解给标注的所有注解信息
需要注意的是selectImports方法可以返回空数组但是不能返回null否则会报空指针异常
3、实现ImportBeanDefinitionRegistrar接口
创建MyImportBeanDefinitionRegistrar接口
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {RootBeanDefinition rootBeanDefinition new RootBeanDefinition(Cat.class);registry.registerBeanDefinition(cat,rootBeanDefinition);
}
}
将此实现类MyImportBeanDefinitionRegistrar添加到容器中
Configuration
Import({MyImportSelector.class,Person.class,MyImportBeanDefinitionRegistrar.class})
public class MyConfig {
}
测试
Autowired
private Person person;
Autowired
private Cat cat;
Test
public void testImport() {System.out.println(person);System.out.println(cat);
}
registerBeanDefinitions参数解释
annotationMetadata 和之前的ImportSelector参数一样都是表示当前被Import注解给标注的所有注解信息
registry第二个参数表示用于注册定义一个bean
以上三种用法方式皆可混合在一个Import中使用特别注意第一种和第二种都是以全类名的方式注册而第三中可自定义方式