Я хотел бы отметить, что предоставленное решение использует свойство "spring.config.client.name" на стороне клиента семантики для достижения сервера конфигурации поведения обслуживающих файлов свойствиз нескольких файлов, кроме application [-profile] . * и {appname} [- profile] . *
Однако , обратите внимание, чтодля простого случая и с учетом корневого каталога, сервер конфигурации предоставляет свойства из файлов, определенных в этом корневом каталоге или в папке с именем приложения, которым соответствуют файлы свойств под ним, т.е. * / {appname} / application[-profile]. ** или * / {appname} / {appname} [- profile]. **
Свойство среды " spring.config.client.name " указываетсервер конфигурации, с которым имена приложений совпадает с запрашивающим приложением.Это означает, что с учетом spring.config.client.name = a , b сервер конфигурации примет свойства обслуживания , определенные для приложения (с именем) а и б запрашивающему приложению!Это не то же самое, что я хочу, чтобы мои свойства обслуживались из file names a и b !Поэтому мы злоупотребляем семантикой свойств для управления обслуживанием нашего сервера конфигурации из имен файлов, которые мы бы хотели.
Однако из-за фактической семантики spring.config.client.name сервер конфигурации будет обслуживать все применимое от
- / a [-profile]. *
- / b [-profile]. *
- / a / {применимые имена}
- / b / {применимые имена}
предостережение в том, что мы достигаем того, что хотим только для корнякаталог и, более того, если у нас есть сервер конфигурации, который обслуживает несколько приложений Springboot, мы теряем возможность иметь все наши свойства в папке имени нашего приложения.
Еще хуже, , если существует другое приложение (или - внимание! - будет существовать в будущем) с тем же именем, что и у нашего желаемогоимена файлов свойств , сервер конфигурации начнет обслуживать наше приложение ALL конфигурация, определенная для этого другого приложения !!!Это может привести к неправильной и даже вредной конфигурации!
(повторяю, он будет обслуживать все в соответствии с / { other-app-name-that-i-случился-использовать-как-filename-and-defined-it-through-spring.config.client.name } / * !!!)
Так что будьте осторожны при использовании этого подхода!
Я выпустил запрос на выборку для spring-cloud-config-server 1.4.x , который поддерживает определение дополнительных имен файлов через свойство среды spring.cloud.config.server.searchNames , в том же самомсмысл, который можно сделать для отдельного приложения springboot, как определено в разделе документации Файлы свойств Externalized Configuration.Application документации, используя свойство среды spring.config.name .Я надеюсь, что они рассмотрят это в ближайшее время