举个例子,同一个微服务,通常我们的servlet-context 都是相同的,不区分生产环境、测试环境, 那类似这样公共的配置,我们可以每个自己单独配置一份,有没有更好的方式呢?
我们继续使用 Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇的工程为例子 ,实现上面的需求,我们需要创建一个通用配置文件:order-center.yml配置那么artisan-config-center.yml就是一个通用配置了,不管是启动prod,还是dev都会有该段配置artisan-config-center.yml的 context-path 配置 。
启动服务,观察日志,验证
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'
访问
精准配置 会覆盖 与通用配置 相同的配置,然后再和通用配置互补。
验证下
启动服务 ,观察日志