首页 > 解决方案 > 如何使用 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();

与不同的环境变体。但我永远不会得到额外的配置。我究竟做错了什么?

标签: springconfigserversteeltoe

解决方案


Steeltoe 在很大程度上依赖于 Config Server 的逻辑,通过指定应用名称、环境名称和附加标签来查找支持文件。由于 .NET 配置被扁平化为字典的方式,您稍后不会在应用程序中看到这一点,但如果缺少您希望看到的配置值,可能是由于文件名与预期不匹配公约。

使用AddConfigServer("external")将导致对“my-service-external.properties”的请求。由于在将应用程序名称与环境(或配置文件)名称分开的约定中使用了破折号,您可能不想在应用程序名称中使用它。

此外,自 2.2.0 以来,Steeltoe 已经发布了一些版本,我建议使用可用的最新 GA 版本(当前为 2.4.3)


推荐阅读