Spring @PropertySource && @Import && ConfigurationClassPostProcessor
Posted 清凤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring @PropertySource && @Import && ConfigurationClassPostProcessor相关的知识,希望对你有一定的参考价值。
1. @PropertySource 加载指定的属性文件(*.properties)到 Spring 的 Environment 中。
2. @Import 的作用
在@Configuration标注的Class上可以使用@Import引入其它的配置类,import的配置类都会被加到Context中,
@Import 还可以引入org.springframework.context.annotation.ImportSelector实现类。ImportSelector接口只定义了一个selectImports(),用于指定需要注册为bean的Class名称。当在@Configuration标注的Class上使用@Import引入了一个ImportSelector实现类后,会把实现类中返回的Class名称都定义为bean。
refert to :Spring(32)——ImportSelector介绍_Elim的博客-CSDN博客_importselector
3. 将一个Class加入Spring上下文的方式
1). XML中定义Bean
2). @Configuration类定义一个配置文件,在其中定义Bean
3). @Configuration加到类上后,使用import 引入直接引入类
4)@Configuration加到类上后,使用import 引入直接引入ImportSelector 实现类
5)Class上定放@Bean @Component
4.ConfigurationClassPostProcessor
BeanFactory 后置处理器之ConfigurationClassPostProcessor, 解析BeanFactory中的BeanDefinitionNames中所有包括 @Configuration @Bean @Components @ComponentScan @Import @PropertySouce的类,并根据这些配置产生相关的BeanDeinination,添加到BeanDefinitionMap中
ConfigurationClassPostProcessor —— Spring中最!最!最!重要的后置处理器!没有之一!!!_天堂的博客-CSDN博客
以上是关于Spring @PropertySource && @Import && ConfigurationClassPostProcessor的主要内容,如果未能解决你的问题,请参考以下文章
@Import 覆盖 Spring @PropertySource
Spring——15使用@PropertySource加载配置文件