Конфигурация приложения
Настройки живут вне Java-кода
Порт сервера, адрес внешнего сервиса, размер пула или флаг функции не стоит жёстко зашивать в класс.
Spring Boot умеет читать конфигурацию из внешних источников и передавать её приложению при запуске.
Самый знакомый вариант — файл application.properties или application.yml.
server.port=8081
app.message=Hello
Те же настройки могут приходить из переменных окружения, аргументов командной строки и других поддерживаемых источников. Благодаря этому один и тот же собранный артефакт можно запускать с разными параметрами без перекомпиляции.
Получение отдельного значения
Для небольшого количества независимых настроек значение можно внедрить прямо в bean:
@Component
class GreetingService {
private final String message;
GreetingService(@Value("${app.message}") String message) {
this.message = message;
}
}
Spring разрешает выражение ${app.message} из текущего окружения
и передаёт значение через конструктор. Когда связанных свойств становится много,
удобнее не писать десятки @Value, а собрать их в отдельный типизированный объект.
Это будет следующая тема.
application.properties.
Их лучше передавать приложению через защищённое внешнее окружение.