dubbo.properties&属性加载顺序|学习笔记

简介: 快速学习dubbo.properties&属性加载顺序

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:dubbo.properties&属性加载顺序】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9465


dubbo.properties&属性加载顺序


内容介绍:

一、配置属性规则

二、测试加载顺序

一、配置属性规则


一、配置属性规则

Dubbo 配置文件,以前是写一段 Spring 配置文件,配 dubbo 的一些信息,包括配置文件中可写非常多的 dubbo 标签,标签可参照 dubbo 的官方文档,在 XML 配置里,有介绍每一个标签的作用,在左侧 schema 配置参考手册中,有每一个标签详细的解释,包括标签里可写哪些属性,每一个属性功能;

例如:dubbo:service 是用来服务提供者暴露服务配置的。

能配置哪些标签与 Springboot 整合时 application properties 中配置的都与标签是一一对应的,前面是转化来的标签名

例如:dubbo:application 会转化成 dubbo.application 加上属性名。

所有标签属性均可在这一一配置,想要生效这些属性配置,dubbo 规定了三种规则,在属性配置中,dubbo 的覆盖策略,属性可在应用启动时通过 Java 的-d 来添加虚拟级参数的方式来改变属性的值;也可以配在 XML 文件中,以前用的是 XML 文件与 Springboot 整合就与 application properties 文件是一样的,可以配在 XML 或者 application properties 中;

还可以写一个 dubbo properties,dubbo properties 文件就是 dubbo 的整个公共配置信息,如果很多人,很多配置的都一样,可以抽取成一个公共的配置信息,也可在启动时加载,但是有优先顺序,若虚拟级参数有传入那么 Dubbo.protocol.port 为中心;

若没有传入,则以 dubbo.xml 配置或与 springboot 整合的 application properties 为优先;若 dubbo.xml 也没有传,则以 dubbo.properties 公共配置优先。


二、测试加载顺序

接下来测试效果,在 user-service 里,除了写 application properties,也就是说普通的项目里,application properties 就是 xml 文件,因此在一个里面演示,还可以写上一个叫 dubbo properties,这里面主要是一些公共配置.

以 dubbo.protocol.port 端口号为例,

在 properties 里可以写的内容,就类似 dubbo.application.name.(X.X.X.)这些配置即 XML 配置的标签名,加属性名,用点分隔。

和 application properties 的配置生成规则是一样的,比如:dubbo:application:name 将生成 dubbo.application.name。

在 dubbo 的配置文件中,配上一个端口号,以端口号为例测试

在 dubbo 的公共配置文件中,配上端口为20882,

dubbo.protocol.port=20882,在application properties 中端口用20881,即 dubbo.protocol.port=20881,

接下来启动服务提供者,由于要测试哪个配置生效,因此先启动 RunConfigurations,启动时先配置一下 User-service-provider,在参数位置配置第一个虚拟级参数,虚拟级参数为-d,固定写法为-Dubbo.protocol.port=20880,相当于在启动服务提供者时,虚拟级参数指定的端口是20880, application properties 即普通项目里的 XML 配置,指的是20881;

那么 dubbo 的公共配置 properties 指的是20882,那么哪个能生效呢?

运行一下

url 地址为image.png20880,

image.png

包括在管理配置台看服务提供者地址,也为20880

说明这个启动了,虚拟级参数有效了。

下面我们不带虚拟级参数进行运行,依旧是 user-service 提供者,把虚拟级参数删掉,即虚拟级参数不配置,只剩下 XML 即 application properties,还剩下 dubbo的配置,按照优先级规定,一定是 application properties 生效,这种情况下,测试结果是20881,运行一下

image.png

端口即为20881

image.png

监控控制台也为20881

若 application properties 中 dubbo.protocol.port 没有配置,那么就会用公共的 dubbo properties,这个配置叫20882,此时20882是有效的,运行一下

image.png

注册端口为20882

image.png

管理控制台也为20882

以上是测试的加载顺序,如文档所说,优先顺序是按照虚拟级参数,XML 配置,公共的 dubbo properties 配置,以后在编程时,比如注册中心的地址、应用的名字、公共的配置都可以放在 dubbo properties 中,在 XML 以及 application properties 里,只写额外需要改变的配置,

如果想临时改变,可以在启动应用时通过传入虚拟级参数而不需要再来改变其他配置。

相关文章
|
2月前
|
负载均衡 Dubbo NoSQL
Dubbo配置文件解密:从dubbo-consumer.xml到dubbo-provider.xml一网打尽【十】
Dubbo配置文件解密:从dubbo-consumer.xml到dubbo-provider.xml一网打尽【十】
43 0
|
4月前
|
前端开发 NoSQL Java
SpringBoot中application.properties的常用配置
SpringBoot中application.properties的常用配置
QGS
|
11月前
浅谈Spring6引入外部Jdbc.properties配置文件
SpringConfig.xml配置 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context <!--引入外部的properties文件-->
QGS
73 0
|
XML Dubbo Java
SpringBoot整合Dubbo的第一种方式——application.properties + @DubboService + @DubboReference
SpringBoot整合Dubbo的第一种方式——application.properties + @DubboService + @DubboReference
1162 0
SpringBoot整合Dubbo的第一种方式——application.properties + @DubboService + @DubboReference
|
Java 容器
SpringBoot——聊聊application.properties和application.yml的写法规范及区别
SpringBoot——聊聊application.properties和application.yml的写法规范及区别
SpringBoot——聊聊application.properties和application.yml的写法规范及区别
springboot配置文件application没有生效处理方式
springboot application.properties不生效(没有生效就是那个文件不是叶子的形态的玩意)
|
Java Spring
spring学习8-log4j.properties 详解与配置步骤
spring学习8-log4j.properties 详解与配置步骤
138 0
|
安全 Java 数据库连接
SpringBoot-基础配置和属性配置详解
SpringBoot-基础配置和属性配置详解
SpringBoot-基础配置和属性配置详解
|
Dubbo Java 应用服务中间件
SpringBoot整合Dubbo的第二种方式——API(自定义Configuration配置类)
SpringBoot整合Dubbo的第二种方式——API(自定义Configuration配置类)
SpringBoot整合Dubbo的第二种方式——API(自定义Configuration配置类)
|
Java Spring
SSM 项目因为需要加载多个properties配置文件,处理方式
SSM 项目因为需要加载多个properties配置文件,处理方式
201 0