Имеется класс с аннотацией @ConfigurationProperties. В нем находятся поля, которые подгружаются из файла. Данный файл хранит настройки сервера, и я хочу их использовать при валидации. Например, если длина логина меньше, чем указано в настройках, то тогда выбрасывать исключение. Проблема в том, что класс контроллер видит поля и позволяет к ним обращаться, а классы сервисы и DTO request не видят, при обращении к полям они все null. Подгрузку файла с настройками выполняю через аннотацию @Autowired.
Может, в классах сервисах и DTO имеется какой-то иной способ получения конфига? Или почему именно в контроллере поля видны, а в других классах - нет?
Используйте аннотацию @Value
в комбинации с systemProperties
(внутри Spring Context):
@Value("#{systemProperties['priority']}")
private String spelValue;
или
@Value("#{systemProperties.myProp}")
private String spelValue;
Ссылка по теме: Spring @Value annotation
Аннотация @Autowired
работает только для бинов в контексте. Если вы создаете инстанс сами через new
или за вас это делает десереализатор то аннотации не работают.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть клиент на java, который отправляет длинный json на сервер, который написан на pythonЕсли длина json'а не очень большая, то все нормально отправляется
Хочу проверить строку на наличие хаотически выставленных букв разных регистровДля примера строка на входе:
До меня дошли страшные слухи, что на iOS нет JVMБолее того, до меня дошли страшные слухи, что будто бы фирма Эппл не разрешает ставить JVM на iOS
Нужно создать интернет-магазинПользователь выбирает товары, они складываются в корзину