Как я могу сослаться на один файл свойств из другого файла свойств в конфигурации spring cloud

#spring-boot #spring-cloud #spring-cloud-config

#spring-boot #spring-cloud #spring-cloud-config

Вопрос:

Я должен реализовать конфигурацию spring cloud для существующего проекта, где у меня есть вариант использования для обработки здесь На некоторые файлы свойств ссылаются другие файлы свойств, такие как logging.propFile=classpath:/cfg/xyz.properties, и эти файлы свойств используются в нескольких местах, таких как

Свойства property = new Properties(); property.load(new FileInputStream(propsPath)); logger = somefactory.createfactory(property.get(«logging.propFile»)); и это фабричное создание определено в другом jar.

Если я перемещу все файлы свойств в репозиторий git, файлы, о которых я упоминал, не будут доступны в пути к классу, и если я перейду к изменению кода, потребуется много изменений в коде.Каков наилучший способ справиться с этой ситуацией. Есть ли какой-либо способ сослаться на один файл свойств в другом в конфигурации spring cloud.

Ответ №1:

Сервер конфигурации Spring Cloud позволяет считывать статические файлы через HTTP. Таким образом, вы можете поместить свой файл свойств references в репозиторий git конфигурации и ссылаться на них через http://<configserver_url>/*/*/<branch_name>/xyz.properties . Это работает только тогда, когда ваш код может обрабатывать URL-адреса, поэтому FileInputStream в вашем примере этого не будет.

Смотрите https://cloud.spring.io/spring-cloud-config/multi/multi__serving_alternative_formats.html и https://cloud.spring.io/spring-cloud-config/multi/multi__serving_plain_text.html.

Также обратите внимание на resolvePlaceholders параметр запроса, значение которого по умолчанию равно true .

Мы используем это для сохранения нашего logback.xml настройка на сервере конфигурации с помощью настройки logging.config: http://<configserver_url/*/*/master/logback.xml?resolvePlaceholders=false