《Apache Dubbo微服务开发从入门到精通》——配置手册—— 一、 配置概述(上) https://developer.aliyun.com/article/1225181
2. 配置方式
按照驱动方式可以分为以下五种方式:
1) API配置
以Java编码的方式组织配置,包括Raw API和Bootstrap API,具体请参考API配置。
2) XML配置
以XML方式配置各种组件,支持与Spring无缝集成,具体请参考XML配置。
3) Annotation配置
以注解方式暴露服务和引用服务接口,支持与Spring无缝集成,具体请参考Annotation配置。
4) Spring Boot
使用Spring Boot减少非必要配置,结合Annotation与application.properties/application.yml开发Dubbo应用,具体请参考Annotation配置。
5) 属性配置
根据属性Key-value生成配置组件,类似SpringBoot的ConfigurationProperties,具体请参考属性配置。
属性配置的另外一个重要的功能特性是属性覆盖,使用外部属性的值覆盖已创建的配置组件属性。
如果要将属性配置放到外部的配置中心,请参考外部化配置。
除了外围驱动方式上的差异,Dubbo的配置读取总体上遵循了以下几个原则:
• Dubbo支持了多层级的配置,并按预定优先级自动实现配置间的覆盖,最终所有配置汇总到数据总线URL后驱动后续的服务暴露、引用等流程。
• 配置格式以Properties为主,在配置内容上遵循约定的path-based的命名规范。
3. 配置加载流程
1) 配置规范与来源
Dubbo遵循一种path-based的配置规范,每一个配置组件都可以通过这种方式进行表达。而在配置的来源上,总共支持6种配置来源,即Dubbo会分别尝试从以下几个位置尝试加载配置数据:
• JVM System Properties,JVM-D参数。
• System environment,JVM进程的环境变量。
• Externalized Configuration,外部化配置,从配置中心读取。
• Application Configuration,应用的属性配置,从Spring应用的Environment中提取“dubbo”打头的属性集。
• API/XML/注解等编程接口采集的配置可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式。
• 从classpath读取配置文件dubbo.properties。