Пружинная электропроводка в классе назначения бульдозера

Итак, я бился головой о монитор последние 4 часа и не могу понять. Я использую Dozer для картирования, и он отлично работает. Тем не менее, мне нужен один из моих DAO в классе назначения и возврат автопроводки null, Вот фрагмент класса:

 @Component
 public class Address
 {
    @XmlElement(name = "street", required = true)
    protected String street;
    @XmlElement(name = "city", required = true)
    protected String city;
    @XmlElement(name = "zip", required = true)
    protected zip;


    @Autowired
    private CityDao cityDao;

    // Getters/setters 
  }

cityDao всегда null, Я довольно новичок в Spring и Dozer, но в документации Dozer сказано, что целевые классы создаются с помощью конструкторов по умолчанию, и, насколько я понимаю, у Spring не должно быть проблем с этим. cityDao является null хоть. Пожалуйста помоги!

1 ответ

Решение

Как уже упоминалось в комментариях, вы не должны вводить DAO в DTO!

Однако, если вам абсолютно необходимо сделать это по какой-либо причине, проверьте Spring's @Configurable служба поддержки. Вот Javadoc, а также некоторая дополнительная информация здесь и здесь.

При правильной настройке он позволяет объектам, которые явно не управляются Spring, пользоваться такими функциями, как автоматические зависимости.

В вашем примере кода, Address хотя комментируется @Component, не управляется Spring, так как создается с помощью Dozer. Вот почему вам нужно @Configurable вводить CityDao в Address

Другие вопросы по тегам