Пружинная электропроводка в классе назначения бульдозера
Итак, я бился головой о монитор последние 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