Spring Boot: конфигурация, многопрофильные документы YAML

Вы можете указать несколько специфичных для профиля документов YAML в одном файле, используя ключ spring.profiles, чтобы указать, когда документ применяется, как показано в следующем примере:

server:
    address: 192.168.1.100
---
spring:
    profiles: development
server:
    address: 127.0.0.1
---
spring:
    profiles: production & eu-central
server:
    address: 192.168.1.120

В предыдущем примере, если профиль development активен, свойство server.address имеет значение 127.0.0.1. Аналогичным образом, если активны production и eu-central профили, свойство server.address имеет значение 192.168.1.120. Если профили development, production и eu-central не включены, то значение свойства равно 192.168.1.100.

Поэтому spring.profiles может содержать простое имя профиля (например, production) или выражение профиля. Выражение профиля позволяет выразить более сложную логику профиля, например, production & (eu-central | eu-west).

Если ни один из них явно не активен при запуске контекста приложения, активируются профили по умолчанию (default). Итак, в следующем YAML мы устанавливаем значение для spring.security.user.password, которое доступно только в профиле "default":

server:
  port: 8000
---
spring:
  profiles: default
  security:
    user:
      password: weak

В следующем примере пароль всегда устанавливается, потому что он не привязан ни к какому профилю, и его необходимо будет явно сбросить во всех других профилях по мере необходимости:

server:
  port: 8000
spring:
  security:
    user:
      password: weak

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


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки