spring - 如何使用 Steeltoe 扩展从 spring 配置服务获取多个配置文件到 dotnetcore 应用程序?
问题描述
如何从 spring 配置服务器取回多个配置文件?
我有使用 Steeltoe.Extensions.ConfigServerCore.2.2.0 的 c# dotnetcore 3.1 应用程序
我能够获得与 spring 应用程序名称匹配的配置。即,如果我的应用程序名称是“my-service”,那么我可以通过使用获取“my-service.properties”以及“application.properties”
var configBuilder = new ConfigurationBuilder()
...
.AddConfigServer();
var config = configBuilder.Build();
如果 spring 应用程序名称与配置服务器中的文件名匹配,则此方法有效。
我试过的
configBuilder.AddConfigServer("external");
var config = configBuilder.Build();
与不同的环境变体。但我永远不会得到额外的配置。我究竟做错了什么?
解决方案
Steeltoe 在很大程度上依赖于 Config Server 的逻辑,通过指定应用名称、环境名称和附加标签来查找支持文件。由于 .NET 配置被扁平化为字典的方式,您稍后不会在应用程序中看到这一点,但如果缺少您希望看到的配置值,可能是由于文件名与预期不匹配公约。
使用AddConfigServer("external")
将导致对“my-service-external.properties”的请求。由于在将应用程序名称与环境(或配置文件)名称分开的约定中使用了破折号,您可能不想在应用程序名称中使用它。
此外,自 2.2.0 以来,Steeltoe 已经发布了一些版本,我建议使用可用的最新 GA 版本(当前为 2.4.3)
推荐阅读
- python - Python在Windows中读取目录时出错
- excel - 如何进行 Vlookup/索引匹配?
- ruby-on-rails - puma systemd 脚本不启动 puma
- jquery - 动态添加
- linux - 为什么使用 `bash` 命令忽略别名?
- c - 为什么
每次我调用不同的函数时都会出现? - java - 如何使用 JAX-RS 从标头“接受语言”注入语言环境列表?
- julia - 如何在 `Profile.print` 树视图中直到深度 > n 才显示呼叫跟踪?
- python - 使用 venv 制作虚拟环境挂起
- c# - 在 Windows 资源管理器上单击该文件时,如何识别 Windows 应用程序上的文件名?