《Apache Dubbo微服务开发从入门到精通》——配置手册——五、 配置工作原理(4) https://developer.aliyun.com/article/1225133
3. 配置加载流程
1) 处理流程
Dubbo配置加载大概分为两个阶段:
• 第一阶段为DubboBootstrap初始化之前,在Spring context启动时解析处理XML配置/注解配置/Java-config或者是执行API配置代码,创建config bean并且加入到ConfigManager中。
• 第二阶段为DubboBootstrap初始化过程,从配置中心读取外部配置,依次处理实例级属性配置和应用级属性配置,最后刷新所有配置实例的属性,也就是属性覆盖。
2) 属性覆盖
发生属性覆盖可能有两种情况,并且二者可能是会同时发生的:
• 不同配置源配置了相同的配置项。
• 相同配置源,但在不同层次指定了相同的配置项。
不同配置源
相同配置源
属性覆盖是指用配置的属性值覆盖config bean实例的属性,类似Spring PropertyOverrideConfigurer的作用。
注:
Property resource configurer that overrides bean property values in an application context definition. It pushes values from a properties file into bean definitions.
Configuration lines are expected to be of the following form:
beanName.property=value
但与PropertyOverrideConfigurer的不同之处是,Dubbo的属性覆盖有多个匹配格式,优先级从高到低依次是:
属性覆盖处理流程:
按照优先级从高到低依次查找,如果找到此前缀开头的属性,则选定使用这个前缀提取属性,忽略后面的配置。
《Apache Dubbo微服务开发从入门到精通》——配置手册——五、 配置工作原理(6) https://developer.aliyun.com/article/1225127