首页 > 其他 > 详细

Import注解

时间:2019-11-04 15:58:17      阅读:85      评论:0      收藏:0      [点我收藏+]

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

 

Import注解

原文:https://www.cnblogs.com/songfahzun/p/11792410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!