介绍一下@Import注解
时间: 2023-02-17 11:02:49 浏览: 69
@Import注解是Spring框架的注解,用于向Spring的IoC容器导入额外的组件。这个注解可以使用在类或者配置类上。使用@Import注解的时候,可以指定要导入的组件的类,或者使用ImportSelector接口和ImportBeanDefinitionRegistrar接口来返回要导入的组件的全类名数组。
使用@Import注解的时候,可以将一个或多个要导入的组件的全类名数组传递给@Import注解的value属性,例如:
@Import(value={Cat.class,Dog.class})
public class AnimalConfiguration {
}
或者,可以使用ImportSelector接口或ImportBeanDefinitionRegistrar接口来动态返回要导入的组件的全类名数组,例如:
@Import(AnimalImportSelector.class)
public class AnimalConfiguration {
}
public class AnimalImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{Cat.class.getName(), Dog.class.getName()};
}
}
@Import(AnimalImportBeanDefinitionRegistrar.class)
public class AnimalConfiguration {
}
public class AnimalImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
registry.registerBeanDefinition(Cat.class.getName(), new RootBeanDefinition(Cat.class));
registry.registerBeanDefinition(Dog.class.getName(), new RootBeanDefinition(Dog.class));
}
}
使用@Import注解可以快速地向Spring的IoC容器中导入一个或多个组件,而不用使用<bean>标签在XML文件中手动定义。