Расширение аргумента @Madhu Bhat, на мой взгляд, также наилучшим способом является использование Spring Cloud Config Server (начало работы)
Теперь, в зависимости от вашего варианта использования, эта парамикросервисов имеют некоторые общие настраиваемые значения (я намеренно изменил слово с CONSTANT на CONFIGURABLE, так как по определению константа не является чем-то, что должно быть изменено), лучший способ использования Весной конфигурационные файлы выглядят следующим образом:
Предположим, у вас есть 3 микросервиса в вашей экосистеме (гипотетический сценарий)
- billing-service
- cart-service
- product-service
Рекомендуется поддерживать файл конфигурации на разных уровнях -
microservice + среда, зависящая от среды файл конфигурации, например, billing-dev.properties или billing-test.properties Этот файл свойств будет содержать свойства, специфичные для конкретной среды.т для конкретной услуги.Служба выставления счетов может иметь определенные свойства, которые отличаются для вашей среды dev и для среды test .Вы можете иметь столько же файлов свойств / конфигурации, сколько и вашей среды.
Уровень микросервиса - свойства, общие для всех сред для конкретных микросервисов, например billing.properties
- application.properties - этот файл свойств содержит свойства, общие для всех микросервисов или нескольких микросервисов ( ваш вариант использования )например, для выставления счетов и обслуживания продуктов требуется какое-либо настраиваемое свойство.
Разрешение свойства / конфигурации:
С точки зрения микросервиса (скажем, службы выставления счетов) любое свойство будетсначала выполняется поиск в первом упомянутом файле свойств (billing-test.properties или billing-dev.properties) в соответствии с тем, какую среду вы указали при запуске службы путем настройки свойством (см. здесь подробно)
spring.profiles.active
Если желаемое свойство не найдено в свойстве среды, тогда откатФайл конфигурации для поиска будет вторым упомянутым файлом конфигурации файла универсальной службы для всех сред ( billing.properties ).
Если свойство не найдено в вышеупомянутых двух файлах, оно будетразрешается application.yml file