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-го слоя).
• разницу `@Value` и `@ConfigurationProperties`, и зачем подставлять переменные окружения (если дошёл до 2-го слоя).