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加载配置文件

[spring] @PropertySource

在 Spring Cloud Config 中使用 @PropertySource - Git

spring @PropertySource 读取资源文件

SPRING MVC - 使用外部文件作为@PropertySource