在这里插入图片描述


需求

举个例子,同一个微服务,通常我们的servlet-context 都是相同的,不区分生产环境、测试环境, 那类似这样公共的配置,我们可以每个自己单独配置一份,有没有更好的方式呢?

在这里插入图片描述

实现

我们继续使用 Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇的工程为例子 ,实现上面的需求,我们需要创建一个通用配置文件:order-center.yml配置那么artisan-config-center.yml就是一个通用配置了,不管是启动prod,还是dev都会有该段配置artisan-config-center.yml的 context-path 配置 。

Step 1 Nacos Config 新增公共配置

在这里插入图片描述

在这里插入图片描述

Step 2 验证

启动服务,观察日志,验证

2022-02-04 13:53:13.926  INFO 3728 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : Loading nacos data, dataId: 'artisan-config-center.yml', group: 'DEFAULT_GROUP', data: server: 
  servlet:
    context-path: /configApp
2022-02-04 13:53:14.028  INFO 3728 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : Loading nacos data, dataId: 'artisan-config-center-dev.yml', group: 'DEFAULT_GROUP', data: server:
    port: 5678
# 是否走新业务逻辑的开关
isNewPath: false   

已经读取到了配置项

2022-02-04 13:53:18.167  INFO 3728 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 5678 (http) with context path '/configApp'

访问

在这里插入图片描述

配置文件优先级

精准配置 会覆盖 与通用配置 相同的配置,然后再和通用配置互补。

在这里插入图片描述

验证下

在这里插入图片描述
启动服务 ,观察日志

在这里插入图片描述

源码

https://github.com/yangshangwei/SpringCloudAlibabMaster

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐