Имеется класс с аннотацией @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 или за вас это делает десереализатор то аннотации не работают.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей