Каково назначение файла application.properties в Spring Boot?

«Каково назначение файла application.properties в Spring Boot?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Файл application.properties (или его YAML-аналог application.yml) — это основной конфигурационный файл Spring Boot приложения. Он служит для централизованного управления настройками.

Основные функции:

  • Задание параметров приложения: порт сервера, параметры подключения к БД, настройки логирования, активация профилей.
  • Внешняя конфигурация: Позволяет изменять поведение приложения без перекомпиляции кода.
  • Поддержка профилей: Для разных сред (dev, prod) можно создавать специфичные файлы, например, application-prod.properties.

Пример содержимого:

# Настройки веб-сервера
server.port=8080
server.servlet.context-path=/api

# Настройки источника данных
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=admin
spring.datasource.password=secret
spring.datasource.driver-class-name=org.postgresql.Driver

# Настройки JPA
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Механизм загрузки и приоритеты: Spring Boot автоматически загружает файл из src/main/resources. Свойства можно переопределять в следующем порядке (от высшего приоритета к низшему):

  1. Аргументы командной строки (например, --server.port=8081).
  2. Переменные окружения ОС.
  3. Файлы конфигурации вне JAR-архива.
  4. Файлы конфигурации внутри JAR-архива (application.properties).

Почему это важно: Такой подход обеспечивает конфигурируемость и портативность приложения между различными средами развертывания.