我试图想出一种简单的方法来将DTO映射到没有样板代码的实体。虽然我在考虑使用dozer,但似乎需要大量的xml配置。有没有人看过使用DSL在纯Java中配置bean映射的推土机替代方案?

理想情况下,我希望找到一个受Guice工作方式启发的bean映射器。

有帮助吗?

解决方案

我也在寻找替代品。

这里是对不同选项的非常好的报道

其他提示

请参阅 Orika

Orika是一个Java Bean映射框架,可以将数据从一个对象递归复制(以及其他功能)。在开发多层应用程序时它非常有用。

从我的角度来看,总是需要用于映射一些特殊属性的配置或java代码。

这里我想以DODTO为例

DO:{
    id: "id",
    name:"name",
    doName1: "doName1",
    nestedObj: {
        id: "nestedObjId",
        name: "nestedObjName"
    }
}

DTO{
    id: "",
    name: "",
    name1: ""   // for mapping doName1 in DO.
    nestedId: "", //for DT.nestObj.id
    nestedName: "", //for DT.nestObj.name
}

对于Dozer或Orika,他们都可以自动匹配DO和DTO之间的id和name属性,而无需任何配置或java代码,因为它们具有相同的属性名称和类型。 但是如果你想DO.doName1 <!> lt; ---- <!> gt; DTO.name1DO.nestedObj.id <!> lt; --- <!> gt; DTO.nestedId您需要进行一些配置(通过xml或java)来告诉您打算这样做的映射工具。 我认为对于您的用例,Dozer,Orika和ModelMapper都可以。但对我而言,我正在将我的项目从推土机转移到Orika以达到性能目的。虽然Orika不像推土机那么成熟,但不是那么智能,并且要求我做很多额外的工作来维护我的自定义映射配置。 如果您的项目不太关心性能,我会推荐您推土机,它<!>#8217;它易于使用并支持如此多的高级功能。否则,如果你购买高性能,我建议你orika。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top