搜索

Spring中@Import注解详解


发布时间: 2023-03-31 15:47:01    浏览次数:14 次

分享时间:2023-03-31 15:47:00
数据来源:网络
提取密码:在线浏览
文件类型:文章

@Import注解简介

@Import注解出自Spring3.0版本,此时spring3.0还属于注解方式开发的过渡期,当然类似于@Bean、@Configuration注解也是在spring3.0版本诞生的。@Import注解于<import>标签的作用是相同的,在spring配置文件中,导入另一个配置文件。

@Import注解作用

@Import注解在与满足配置文件中的<import>标签的作用之外,还可以将所导入的配置对象注入到IOC容器中,进行初始化。
下面是三种方式:

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);
        }
    }
}




免责声明 Spring中@Import注解详解,资源类别:文本, 浏览次数:14 次, 文件大小:-- , 由本站蜘蛛搜索收录2023-03-31 03:47:01。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://segmentfault.com/a/1190000043610854