Конфигурация весеннего облака сериализуется как массив
В моем облачном конфиге у меня есть этот my-app.yml
spring:
profiles: dev
roles:
- nerds
- staff
но, похоже, он сериализуется так:
"source": {
"roles[0]": "nerds",
"roles[1]": "staff"
}
вместо
"source": {
"roles": [
"nerds",
"staff"
]
}
если я использую свою конфигурацию из приложения узла, теперь мне нужно найти все реквизиты, которые соответствуют регулярному выражению /^roles
и проанализировать массив, вместо того, чтобы просто вернуть массив обратно.
Есть ли способ настроить облачную конфигурацию так, чтобы она просто возвращала собственные массивы вместо того, чтобы разбивать их на индексированные ключи объекта?
1 ответ
Насколько я знаю, нет никакой конфигурации, чтобы заставить сервер конфигурации обслуживать собственные массивы, потому что файл yml является просто альтернативным представлением файла свойств при весенней загрузке.
Вместо этого вы можете получить доступ к вашему серверу конфигурации из приложения вашего узла с различными конечными точками, которые поддерживает сервер конфигурации, как показано ниже.
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
{profile}
может быть несколькими значениями, разделенными командой (,). Если вы обращаетесь к вашему серверу конфигурации одним из перечисленных выше способов, он будет работать как собственный формат yaml, который имеет точно такое же содержимое - уже объединенные и переопределенные свойства из нескольких файлов - и он имеет значения массива в виде списка yaml, как вы хотите. Вы можете легко разобрать yaml в JSON в node.js, как вы знаете. Я думаю, что это может быть альтернативным решением для вас.
Вы можете найти другие конечные точки, которые поддерживает сервер конфигурации, здесь - раздел быстрого запуска.