Dubbo配置文件的加载顺序

​ 在使用apache dubbo.version2.7.3 时,配置文件的加载情况。以provider提供服务者为例。

配置文件 ,以下四个配置文件。

1571487405143

其优先级

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>

在四个配置文件都 不注释的情况下,启动项目,则浏览器查看如下图

1571487872560

总有两个服务者,其中端口分别为20880 ,20883 。这个为application.properties,dubbo.xml。优先级较高

注释掉application.properties的端口启动项目。浏览器如下图

1571488050728

也有两个服务提供,端口为20881,20883 。这个为application.yml , dubbo.xml。发现这两个的优先级高于dubbo.properties 。

注释dubbo.xml启动项目,浏览器如下图

1571488377735

此时,端口为20880。说明application.properties的配置文件大于yml和dubbo.properties

在注释yml,application.properties,dubbo.xml文件后,运行,浏览器如下

1571488798233

此时只有一个服务者,端口20882 。

1571490634584

如上图。dubbo.xml文件和yml,application.properties。属于同一级,但是application.properties文件的优先级高于yml。而dubbo.properties属于低级,只有以上三个不生效的时候才能有效。