Как мне использовать два отдельных конфигурационных файла Spring yaml одновременно?

#java #spring

#java #spring

Вопрос:

У меня есть application.yml, и у меня есть второй файл. Он может быть назван как угодно, но мне нужно загружаться с них обоих. Они не будут перекрываться, поэтому перезапись не вызывает беспокойства. К сожалению, я не могу использовать профили для разделения данных и нуждаюсь в двух файлах.

Для файловой структуры у меня есть:

 src
 main
  resources
   application.yml
   layer2
    secondFile.yml
 

Я пробовал:

  1. Добавление spring.config.additional-location в мой application.yml. Кажется, что это никогда не загружает второй файл. Я пробовал с обоими classpath и file , но я мог делать это неправильно.
  2. В Application.java , изменив main на use System.setProperty("spring.config.location", "{file and classpath attempts}") , а также создав новый набор свойств и передав их в SpringApplication перед его запуском.

Есть ли что-то, чего мне не хватает? Возможно, я неправильно форматирую путь к классу или выбор файла, но я не уверен, как это проверить.

Для первого стиля попытки, application.yml — это просто:

 spring:
  config:
    additional-location: "optional:classpath:/layer2/secondFile.yml"
 

Комментарии:

1. Почему вы не можете использовать профили?

2. @Andreas Я пытаюсь упростить, удалив некоторые общие конфигурации из нескольких модулей. Итак, конечная цель, на которую я надеюсь, — это иметь что-то вроде общей конфигурации, где каждый модуль имеет приложение. yml с информацией о конкретном проекте.

3. Так почему же каждый модуль не может быть также профилем? Позволяет ли вам помещать конфигурацию, зависящую от конкретного модуля, в файлы конфигурации, зависящие от профиля? Профиль — это (означает) то, что вы решаете, что это такое.