apollo是一个很受欢迎的配置中心,我们在配置apollo的时候,都需要在META-INF的app.properties中配置appid=serverName,那么我们后面就根据源码看看,apollo是怎么读取app.id的配置的。
一、入口
apollo读取配置的入口是在PropertySourcesProcessor类中,这个类的类结构图我们来看下:
它实现了BeanFactoryPostProcessor类,及其方法,如下:
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
initializePropertySources();
}
然后进入了,initializePropertySources()方法,最后进入了DefaultConfigManager类的getConfig(String namespace)方法,namespace是我们在@EnableApolloConfig中设置的值,如datasource等,在前面