共计 1077 个字符,预计需要花费 3 分钟才能阅读完成。
@Import 注解
@Import 注解出自 Spring3.0 版本,此时 spring3.0 还属于注解形式开发的过渡期,当然相似于 @Bean、@Configuration 注解也是在 spring3.0 版本诞生的。@Import 注解于 <import> 标签的作用是雷同的,在 spring 配置文件中,导入另一个配置文件。
@Import 注解作用
@import 注解绝对于标签 import 还减少了 bean 对象的注入性能,上面是三种初始化对象的形式形式:
1. @Import(UserService.class)
这种形式最为简略,作用是将 UserService 类进行初始化,并注册到 IOC 容器中
2. 实现 ImportSelector 接口
public class MyImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{Logger.class.getName(), Cache.class.getName()};
}
这种形式是重写父类接口,作用是返回须要注册的 Bean 对象的全类名
3. 实现 ImportBeanDefinitionRegistrar 接口,这种形式能够重写父类接口办法,间接应用 BeanDefinitionRegistry,将咱们的 Bean 对象注入到 IOC 容器中
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Logger.class);
registry.registerBeanDefinition("logger666", rootBeanDefinition);
RootBeanDefinition cache = new RootBeanDefinition(Cache.class);
registry.registerBeanDefinition("cache666", cache);
}
}
}
正文完