Конфигурация Spring Boot приложений

Boot имеет огромное число настроек, которые имеют вполне приемлемые значения по умолчанию. А чтобы изменить эти значения, необходимо использовать файлы конфигурации.

Файлы конфигурации

Конфигурация Spring Boot по умолчанию располагается в файлах application.properties или application.yml, которые могут располагаться в следующих местах:

  • Каталог config текущего каталога
  • Текущий каталог
  • Пакет config в classpath
  • Корень classpath

Файл может быть либо java properties файлом, либо YAML файлом. В любом случае в нём могут находиться параметры Spring Boot и их значения. Полный список параметров описан в документации Spring Boot.

Самая простая вещь, которую можно для примера сделать, это изменить настройки логирования. Допустим, если вы хотите сменить уровень логирования, просто допишите в application.properties следующую строку:

Собственные переменные конфигурации

Кроме характерных для Spring Boot переменных конфигурации, можно задавать и собственные. Они могут иметь любое имя, любое значение и Spring Boot не будет делать каких-либо предположений о них или пытаться их использовать. Чтобы получить доступ к содержимому ваших конфигурационных переменных, необходимо использовать аннотацию @Value в бине.

Смена конфигурационного файла

Файл конфигурации по умолчанию это удобно, но что если у вас будет более одного Spring Boot приложения? В этом случае можно явно задать, где нужно искать файл конфигурации, добавив аннотацию @PropertySource  к классу приложения.

Конфигурационные профили

Sprinb Boot поддерживает различные конфигурации в одном файле конфигурации. Например, чтобы не отклонятся от темы, вы можете использовать уровень логирования DEBUG при разработке, INFO при эксплуатации и FATAL при исполнении интеграционных тестов.Разные профили конфигурации могут быть заданы с использованием properties файлов и YAML файлов. Стоит отметить, что в YAML использовать профили удобнее:

По умолчанию уровень логгирования будет INFO, при использовании профиля developmentDEBUG и при использовании профиля testing — уровень FATAL. Активировать профиль можно с помощью переменной окружения spring.profiles.active или параметра приложения —spring.profiles.active В обоих случаях можно перечислять несколько профилей через запятую. В случае, если активные профили переопределяют значение одной и той же переменной, её значение будет взять из последнего профиля.