Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Наука · 6 июля 2026 г.
🧠 @Value vs @ConfigurationProperties — кого выбрать? — 6 июля 2026 г. в 05:15:05.892
🧠 @Value vs @ConfigurationProperties — кого выбрать? Часто вижу, как даже опытные разработчики по привычке используют @Value для инъекции конфигурации: @Value("${app.timeout}") private Duration timeout; ⚠️ Но с ростом приложения @Value становится хрупким и неудобным. 📌 Лучший подход — использовать @ConfigurationProperties: @ConfigurationProperties(prefix = "app") public record AppProperties(Duration timeout, String apiKey) {} @Bean @ConfigurationPropertiesBinding public AppProperties appProperties() { return new AppProperties(); } ✅ Преимущества @ConfigurationProperties: - 💡 Группирует настройки логически - 🔍 Работает с валидацией (@Validated, @NotNull, и т.д.) - 📚 Отлично поддерживается IDE (автокомплит, рефакторинг) - 🔧 Удобно тестировать и мокать 🆕 Начиная с Spring Boot 2.2+, можно использовать record-классы и просто зарегистрировать бин через @EnableConfigurationProperties: @Configuration @EnableConfigurationProperties(AppProperties.class) public class AppConfig {} Так что, если у вас в проекте до сих пор десятки @Value — самое время навести порядок. 👉 @BookJava

