java - 推土机目标类中的 Spring Autowiring

标签 java spring dozer

所以,在过去的 4 个小时里,我一直用头撞显示器,但无法弄清楚。 我正在使用 Dozer 进行绘图,效果很好。但是,我需要目标类中的 DAO 之一,并且 Autowiring 返回 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 应该不会有任何问题。不过,cityDaonull。请帮忙!

最佳答案

正如评论中所提到的,您不应该将 DAO 注入(inject)到 DTO 中!

但是,如果您出于某种原因确实需要这样做,请查看 Spring 的 @Configurable 支持。这是Javadoc还有更多信息 herehere .

如果设置正确,它允许未由 Spring 显式管理的对象受益于 Autowiring 依赖项等功能。

在示例代码中,Address 尽管使用 @Component 进行注释,但并不由 Spring 管理,因为它是使用 Dozer 创建的。这就是为什么您需要 @ConfigurableCityDao 注入(inject) Address

关于java - 推土机目标类中的 Spring Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226759/

相关文章:

hibernate - Dozer:Hibernate PersistentMap 未映射到 java.util.HashMap

Java Jersey 2 json 支持

java - volatile int 是否比 AtomicInteger 快

java - 为什么我无法使用 Jackson Java 库解包和序列化 Java 映射?

spring - 如何使用 SpringMVC @Valid 验证 POST 中的字段且仅验证 PUT 中的非空字段

java - 如何在 Spring Boot 应用程序中记录 Activity 配置?

java - 在构造函数中连接一个 bean 和一个值

java - 为什么我们不能在 Map(Java) 上使用迭代器?

java - 使用dozer复制java对象

java - 推土机,如何忽略带有注释的字段