Dubbo配置文件的加载顺序
在使用apache dubbo.version2.7.3 时,配置文件的加载情况。以provider提供服务者为例。
配置文件 ,以下四个配置文件。
其优先级
application.properties
#Dubbo config
dubbo.application.name=boot-ego-user-service-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
application.yml
#Dubbo config
dubbo:
# application:
# name: boot-ego-user-service-provider
# registry:
# address: zookeeper://127.0.0.1:2181
protocol:
# name: dubbo
port: 20881
dubbo.properties
#Dubbo config
dubbo.protocol.port=20882
dubbo.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:protocol name = "dubbo" port = "20883"></dubbo:protocol>
</beans>
在四个配置文件都 不注释的情况下,启动项目,则浏览器查看如下图
总有两个服务者,其中端口分别为20880 ,20883 。这个为application.properties,dubbo.xml。优先级较高
注释掉application.properties的端口启动项目。浏览器如下图
也有两个服务提供,端口为20881,20883 。这个为application.yml , dubbo.xml。发现这两个的优先级高于dubbo.properties 。
注释dubbo.xml启动项目,浏览器如下图
此时,端口为20880。说明application.properties的配置文件大于yml和dubbo.properties
在注释yml,application.properties,dubbo.xml文件后,运行,浏览器如下
此时只有一个服务者,端口20882 。
如上图。dubbo.xml文件和yml,application.properties。属于同一级,但是application.properties文件的优先级高于yml。而dubbo.properties属于低级,只有以上三个不生效的时候才能有效。