@EnableConfigurationProperties
@ConfigurationProperties
@EnableConfigurationProperties注解一般和ConfigurationProperties注解搭配使用,可以将配置文件属性注入到bean中。
ImportSelector<Interface>
- selectImports(AnnotationMetaData importingClassMetada):String[]
@Import
@Import其实就是引入一个或多个配置,可以导入普通类,也可以导入配置类。
@Import用来导入一个或多个类(会被spring容器管理),或者配置类(配置类里的@Bean标记的类也会被spring容器管理)
ImportBeanDefinitionRegistrar <Interface>
BeanDefinitionRegistry <interface>
AnnotationMetaData <Interface>
通过@Enable××注解里面的@Import注解
我们在Enable某个功能时,实际上是通过@Import注解加载了另外的配置属性类。
再换一种说法
@Ebable开头的Annotation定义,简单概括一下就是,借助@Import的支持,收集和注册特定场景相关的bean定义。
按照我的理解,@Enablexx注解或者说springboot在做的事情其实还是在将一些需要使用的class注册到spring容器中(ApplicationContext)中去----即IOC的功能,只不过它通过注解这样的方式默认的将很多bean都给你注册好了。
再一次的概括,@EnableAutoConfiguration也是借助@Import的帮助,将所有符合自动装配条件的bean定义加载到IOC容器,仅此而已!
水平不够,文章思路比较乱。
网友评论