ApolloApplicationContextInitializer 怎样被加载
时间: 2023-06-15 09:04:18 浏览: 202
ApolloApplicationContextInitializer 是通过 Spring Boot 的自动配置机制自动加载的。具体来说,它是通过在 META-INF/spring.factories 文件中声明自己的方式被加载的。在该文件中添加如下配置即可:
```
org.springframework.context.ApplicationContextInitializer = com.ctrip.framework.apollo.spring.config.ApolloApplicationContextInitializer
```
这样,在 Spring Boot 应用启动时,就会自动加载 ApolloApplicationContextInitializer,它会在 Spring 应用的 ApplicationContext 加载之前,对应用进行一些初始化配置,比如将 Apollo 配置中心的配置属性加载到 Spring 的 Environment 中。这样,我们就可以在 Spring 应用中使用 @Value 注解来注入配置属性了。
相关问题
spring 扫描ApolloApplicationContextInitializer
在 Spring 中,可以通过在配置文件中添加以下代码来启用 Apollo 的自动配置:
```
<context:property-placeholder
location="classpath*:META-INF/config/*.properties"
ignore-unresolvable="true"
ignore-resource-not-found="true"/>
<context:component-scan base-package="com.xxx"/>
<bean class="com.ctrip.framework.apollo.spring.config.PropertySourcesProcessor"/>
```
其中,`PropertySourcesProcessor` 是 Apollo 提供的 Spring Boot 自动配置类,用于将 Apollo 的配置信息加载到 Spring 的环境中。
在这段配置中,`<context:property-placeholder>` 标签用于加载配置文件,`<context:component-scan>` 标签用于扫描 Spring Bean,`<bean>` 标签用于注册 `PropertySourcesProcessor` 类。
在 Apollo 的 `PropertySourcesProcessor` 类中,会扫描所有 Spring Bean,并对其中使用了 `@Value` 注解的属性进行自动注入。同时,还会将 Apollo 的配置信息注入到 Spring 中,以供应用程序使用。
阅读全文