Я думаю, что в вашем случае в классе DataValidator, так как было указано несколько конструкторов, и ни один из них не был отмечен @Autowired(required=true)
. Поэтому Spring использовал конструктор по умолчанию для создания Бина. В результате при вызове
applicationContext.getBean(DataValidator.class,"123");
вы получаете компонент, созданный с помощью конструктора по умолчанию.
Только один аннотированный конструктор на класс может быть помечен как требуется, но несколько не Необходимые конструкторы могут быть аннотированы. В этом случае каждый рассматривается среди кандидатов, и Spring использует самый жадный конструктор, зависимости которого могут быть удовлетворены