6. @Import-给容器中快速导入一个组件
通过导入的方式实现把实例加入springIOC容器中
6.1 @Import的三种使用方式
通过查看@Import源码可以发现@Import注解只能注解在类上,以及唯一的参数value上可以配置3种类型的值Configuration,ImportSelector,ImportBeanDefinitionRegistrar,源码如下:
1 | (ElementType.TYPE) |
接下来就分别来看看三种方式具体使用:
6.1.1 基于Configuration也就是直接填对应的class数组
在bean目录下新增两个类Square和Circular如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/**
* 定义一个圆形
*
* @author
* @date 2018年5月1日
*/
public class Circular {
}
/**
* 定义一个正方形
*
* @author
* @date 2018年5月1日
*/
public class Square {
}
MainConfig注解配置中增加@Import注解如下:
1 | ({Square.class,Circular.class}) |
测试如下
1 |
|
6.1.2 基于自定义ImportSelector的使用
定义一个MyImportSelector如下:
1 | /** |
MainConfig注解配置修改如下:1
({Square.class,Circular.class,MyImportSelector.class})
6.1.3 基于ImportBeanDefinitionRegistrar的使用
新建一个ImportBeanDefinitionRegistrar如下:
1 | /** |
修改MainConfig注解配置如下:1
({Square.class,Circular.class,MyImportSelector.class,MyImportBeanDefinitionRegistrar.class})
本文大部分转自:51CTO博客-知了123