ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Import注解

2019-11-04 15:57:00  阅读:203  来源: 互联网

标签:spring class xxx Cat 注解 Import public


@Import的参数是一个class类型的数组

@Import(Cat.class)//可以把一个类当做一个Bean注入到Spring中
@Import(CatConfiguration.class)//可以把一个配置类注入到spring中
public class Cat {

    public void  miaomiao(){
        System.out.println("miaomiao");
    }
}
@Configuration
public class CatConfiguration {


    @Bean
    public Cat cat() {
        return new Cat();
    }
}

可以看出,@Import注解可以把一个普通的类转换成一个bean,添加到spring容器中.

也可以把一个配置类添加到spring的容器中,但是配置类本来就会被添加spring容器中啊

 

如果@Import()中天机的是一个实现了ImportSelector接口类,那么就会把返回的全类名的数组都添加到spring容器中.

@Import(DogSelector.class)//可以DogSelector中返回的全类名数组都加入到spring中管理
public class DogSelector implements ImportSelector {
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        return new String[]{"com.mccloud.mccloudtest.conf.Dog","xxx.xxx.xxx.xxx",...};//可以把这里返回的类都加到sprin管理起来
    }
}

//BeanDefinitionRegistrat注册进来

@Import(DuckBeanDefinitionRegistrat.class)//可以把一个BeanDefinitionRegistrat注册进来
public class DuckBeanDefinitionRegistrat implements ImportBeanDefinitionRegistrar {
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
        BeanDefinition beanDefinition = new RootBeanDefinition(Duck.class);
        registry.registerBeanDefinition("Duck", beanDefinition);
    }
}
public class Duck {

    public void gaga(){
        System.out.println("gaga");
    }
}

 

标签:spring,class,xxx,Cat,注解,Import,public
来源: https://www.cnblogs.com/songfahzun/p/11792410.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有