【发布时间】:2022-12-15 20:37:38
【问题描述】:
Spring cloud-config-server 有一个内置的机制来与 git 存储库通信并读取存储在那里的文件。然后cloud-config-server 也有内置的机制来向客户端(通常是 spring boot 应用程序)公开端点,客户端可以读取这些文件并将它们用作配置。
从下面可以看出,这在 spring 文档中有详细记录。
根据doc
Spring Cloud 配置服务器
Spring Cloud Config Server 提供了一个 HTTP 用于外部配置的基于资源的 API(名称-值对或 等效的 YAML 内容)。
也作为documented关于服务格式
提供替代格式
默认的 JSON 格式来自 环境端点非常适合 Spring 使用 应用程序,因为它直接映射到环境 抽象。如果您愿意,您可以使用与 YAML 或 通过添加后缀(“.yml”、“.yaml”或“.properties”)的 Java 属性 到资源路径。这对以下消费很有用 不关心 JSON 结构的应用程序 端点或它们提供的额外元数据(例如, 不使用 Spring 的应用程序可能会从简单性中受益 这种方法)。
可以also支持txt格式
提供纯文本
而不是使用环境抽象(或 它在 YAML 或属性中的替代表示之一 格式),您的应用程序可能需要通用的纯文本配置 适合其环境的文件。
但是考虑到 spring cloud config 服务器具有与 git 存储库通信的内置机制,并且还向客户端公开端点以使用交付的文件,其他类型的文件能够从这些端点提供服务是有意义的出色地。
它可以是例如
.xslx,甚至是.zip例如,假设配置的 git 存储库在
featureA分支中包含文件myFile.zip。然后在/{application}/{profile}[/{label}]类型的暴露路径下调用,例如serverUrl:serverPort/myApp/default/featureA/myFile.zip能够传送文件,但始终以原始.txt文件的形式传送,这会破坏 git 中现有的原始文件的内容。我已经找到了解决方案,但在上面投入了很多时间,奇怪的是它没有记录在 spring 文档中。因此,存在于此可能是一件好事,可以为其他有相同问题的人腾出一些时间。
【问题讨论】:
标签: java spring git spring-boot spring-cloud-config