Рубрики
Без рубрики

Spring Configuration Bootstrap vs Свойства приложения

Краткий обзор различий между application.properties и bootstrap.properties.

Автор оригинала: baeldung.

1. Обзор

Spring Boot-это самоуверенный фреймворк. Несмотря на это, мы обычно в конечном итоге переопределяем автоматически настроенные свойства в файле конфигурации приложения, таком как application.properties .

Однако в приложении Spring Cloud мы часто используем другой файл конфигурации с именем bootstrap.properties .

В этом кратком руководстве мы объясним различия между bootstrap.properties и application.properties .

2. Когда используется Файл Конфигурации Приложения?

Мы используем application.yml или application.properties для настройки контекста приложения .

При запуске приложения Spring Boot создается контекст приложения, который не нужно явно настраивать – он уже настроен автоматически. Однако Spring Boot предлагает различные способы переопределения этих свойств .

Мы можем переопределить их в коде, аргументах командной строки, параметрах ServletConfig init, параметрах ServletContext init, системных свойствах Java, переменных операционной системы и файле свойств приложения.

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

Мы склонны группировать свойства, которые мы можем переопределить в контексте приложения:

  • Основные свойства (свойства ведения журнала, свойства потока)
  • Свойства интеграции ( RabbitMQ свойства, ActiveMQ свойства)
  • Веб-свойства ( HTTP свойства, MVC свойства)
  • Свойства безопасности ( LDAP свойства, OAuth2 свойства)

3. Когда используется Файл Конфигурации Начальной Загрузки?

Мы используем bootstrap.yml или bootstrap.properties для настройки контекста начальной загрузки . Таким образом, мы сохраняем внешнюю конфигурацию для начальной загрузки и основной контекст четко разделенными.

Контекст начальной загрузки отвечает за загрузку свойств конфигурации из внешних источников и за расшифровку свойств в локальных внешних файлах конфигурации.

Когда приложение Spring Cloud запускается, оно создает bootstrap контекст . Первое, что нужно помнить, это то, что bootstrap контекст является родительским контекстом для основного приложения.

Еще один ключевой момент , который следует помнить, заключается в том, что эти два контекста совместно используют среду |, которая является источником внешних свойств для любого приложения Spring . В отличие от контекста приложения, контекст начальной загрузки использует другое соглашение для определения местоположения внешней конфигурации.

Источником файлов конфигурации может быть, например, файловая система или даже репозиторий git. Службы используют свою зависимость spring-cloud-config-client для доступа к серверу конфигурации.

Проще говоря, сервер конфигурации-это точка, через которую мы получаем доступ к файлам конфигурации контекста приложения .

4. Быстрый Пример

В этом примере файл конфигурации контекста начальной загрузки настраивает зависимость spring-cloud-config-client для загрузки нужных файлов свойств приложения.

Давайте рассмотрим пример файла bootstrap.properties :

spring.application.name=config-client
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.username=root
spring.cloud.config.password=s3cr3t
spring.cloud.config.fail-fast=true
management.security.enabled=false

5. Заключение

В отличие от приложения Spring Boot, приложение Spring Cloud имеет контекст начальной загрузки, который является родительским для контекста приложения. Хотя оба они используют одну и ту же среду |, они имеют разные соглашения для поиска внешних файлов конфигурации.

Контекст начальной загрузки ищет файл bootstrap.properties или файл bootstrap.yaml, в то время как контекст приложения ищет файл application.properties или application.файл yaml .

И, конечно же, свойства конфигурации контекста начальной загрузки загружаются до свойств конфигурации контекста приложения.