spring 云配置序列化为数组

spring cloud config serialize as array

在我的云配置中我有这个 my-app.yml

spring:
  profiles: dev
roles:
  - nerds
  - staff

但它似乎是这样序列化的:

"source": {
   "roles[0]": "nerds",
   "roles[1]": "staff"
}

而不是

"source": {
   "roles": [
     "nerds",
     "staff"
   ]     
}

如果我从节点应用程序使用我的配置,我现在必须找到与正则表达式匹配的所有道具 /^roles 并解析出数组,而不是仅仅从本地获取数组。

有没有办法将云配置配置为 return 本机数组,而不是将其分解为对象的索引键?

据我所知,没有使配置服务器为本机数组提供服务的配置,因为 yml 文件只是 spring 引导中属性文件的替代表示。

相反,您可以使用配置服务器支持的不同端点从您的节点应用程序访问您的配置服务器,如下所示。

/{application}-{profile}.yml
/{label}/{application}-{profile}.yml

{profile}可以是多个值,用command(,)分隔。如果您使用上述之一访问您的配置服务器,配置将作为具有完全相同内容的本机 yaml 格式提供 - 已经合并并覆盖来自多个文件的属性 - 并且它具有数组值作为您想要的 yaml 列表。如您所知,您可以轻松地将 yaml 解析为 node.js 中的 JSON。我认为这可能是您的替代解决方案。

您可以找到配置服务器支持的其他端点here - 快速入门部分。