推土机替代bean映射? [关闭]
-
05-07-2019 - |
题
我试图想出一种简单的方法来将DTO映射到没有样板代码的实体。虽然我在考虑使用dozer,但似乎需要大量的xml配置。有没有人看过使用DSL在纯Java中配置bean映射的推土机替代方案?
理想情况下,我希望找到一个受Guice工作方式启发的bean映射器。
解决方案
我也在寻找替代品。
这里是对不同选项的非常好的报道
其他提示
请参阅 Orika 。
Orika是一个Java Bean映射框架,可以将数据从一个对象递归复制(以及其他功能)。在开发多层应用程序时它非常有用。
从我的角度来看,总是需要用于映射一些特殊属性的配置或java代码。
这里我想以DO
和DTO
为例
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.name1
或DO.nestedObj.id
<!> lt; --- <!> gt; DTO.nestedId
您需要进行一些配置(通过xml或java)来告诉您打算这样做的映射工具。
我认为对于您的用例,Dozer,Orika和ModelMapper都可以。但对我而言,我正在将我的项目从推土机转移到Orika以达到性能目的。虽然Orika不像推土机那么成熟,但不是那么智能,并且要求我做很多额外的工作来维护我的自定义映射配置。
如果您的项目不太关心性能,我会推荐您推土机,它<!>#8217;它易于使用并支持如此多的高级功能。否则,如果你购买高性能,我建议你orika。
不隶属于 StackOverflow