@Value на @ConfigurationProperties, если хочешь больше контроля и нормальную тестируемость.▪️Когда ты используешь
@Value для кучи параметров, конфиг расползается по проекту: настройки оказываются разбросаны по разным классам, их сложнее поддерживать и тестировать.▪️
@ConfigurationProperties собирает связанные параметры в один класс, позволяет навесить валидацию и делает структуру кода аккуратнее.Разница по сути такая:
▪️С
@Value это строковая инъекция свойств без валидации.▪️С
@ConfigurationProperties это type-safe конфиг с возможностью валидации.Плюсы:
▪️автокомплит в IDE
▪️валидация
▪️проще тестировать
▪️чище структура кода
В тестах можно просто замокать объект с настройками, вместо того чтобы возиться с отдельными
@Value аннотациями на каждом поле.👉 Java Portal
