Установить свойства весенней загрузки через аргумент командной строки - PullRequest
0 голосов
/ 31 января 2020

У меня есть 2 файла свойств:

  • application.yml
  • bootstrap .yml

У меня есть встроенный файл jar для моего приложения, и запустите его с: java -jar 'jar file path' Мне нужно переопределить файлы свойств с файлами во внешнем расположении. Пробовал: -Dspring.config.location=your/config/dir/ аргумент, однако он не работает.

Не могли бы вы дать мне правильный подход, как переопределить свойства несколькими файлами свойств, пожалуйста?

My bootstrap .yml выглядит так:

spring:
  application.name: app_name
  profiles:
    active: local
    include:
  cloud.consul.enabled: false
  main:
    web-application-type: none

---
spring:
  profiles: withconsul
  cloud:
    config.allow-override: true
    consul:
      enabled: true
      host: https://consul.evoil.ru
      port: 443
      config:
        enabled: true
        format: YAML
        fail-fast: true

Стоит ли переименовывать файл свойств для существующих профилей?

1 Ответ

0 голосов
/ 31 января 2020

Вам также необходимо использовать spring.config.name помимо spring.config.location .

java -jar 'jar file path' --spring.config.name=external-prop-file-name --spring.config.location=your/config/dir/

См. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot - features-external-config-application-property-files .

Обновление:

Если вы хотите применить свойства обоих внешних файлов (но где свойства, найденные в bootstrap .yml , имеют приоритет перед свойствами, найденными в application.yml ), затем необходимо переименовать файл bootstrap .yml в application- bootstrap .yml и запустите приложение, используя профиль bootstrap:

java -jar 'jar file path' --spring.profiles.active=bootstrap --spring.config.location=your/config/dir/

В этом примере я опустил - аргумент spring.config.name , так как его значение по умолчанию: application (https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#core -properties ).

Обновление 2:

Если профиль withconsul уже активирован в файле application.yml и вы не хотите добавлять новый профиль, вы можете переименовать файл bootstrap .yml в Приложение-withconsul .yml .

...