Карта / Spring Boot / application.yml

application.yml

application.yml (или application.properties) — главный файл настроек Spring Boot-приложения. Здесь задаются параметры подключения к базе, порт сервера, уровни логирования и любые свои настройки.

server:
  port: 8080

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb
    username: user
    password: password
  jpa:
    hibernate:
      ddl-auto: update

logging:
  level:
    root: INFO
    org.springframework: DEBUG

YAML использует отступы для вложенности вместо точек, как в .properties (spring.datasource.url в properties = spring: datasource: url: в YAML — то же самое, другой синтаксис).

Копнуть глубже

Свои настройки и @Value:

app:
  max-retries: 5
@Value("${app.max-retries}")
private int maxRetries;

@ConfigurationProperties — более структурированный способ для группы связанных настроек, вместо отдельных @Value на каждое поле:

@Component
@ConfigurationProperties(prefix = "app")
class AppProperties {
    private int maxRetries;
    // геттеры/сеттеры — Spring сам заполнит из application.yml
}

Подстановка переменных окружения — частая практика для продакшена, чтобы не хранить пароли прямо в файле:

spring:
  datasource:
    password: ${DB_PASSWORD}   # возьмёт значение из переменной окружения DB_PASSWORD

Подробнее про секреты — в теме «env, .env не в репо».

🎤 Закрыл тему, если можешь объяснить:
• что настраивается в application.yml на базовых примерах;
• разницу `@Value` и `@ConfigurationProperties`, и зачем подставлять переменные окружения (если дошёл до 2-го слоя).