选择哪个库将JAXB生成的对象映射到业务/域对象?我只想在Dozer,Apache Commons BeanUtils,Spring BeanUtils之间思考。我读到Dozer有一些性能问题。真的吗?还有比这三个更好的东西吗?
我提到将会有超过100个JAXB课程。
答案 0 :(得分:3)
我用过Orika,Smooks和推土机。
Orika:非常直观,但开发是程序化的。
Dozer:使用xml映射,但是如果源和目标相等则能够避免它们。
Smooks:我不推荐它,映射文件太复杂了。
答案 1 :(得分:2)
Transmorph:Transmorph是一个免费的java库,用于将一种类型的Java对象转换为另一种类型的对象(具有另一种签名,可能参数化)。
EZMorph:EZMorph是一个简单的java库,用于将Object转换为另一个Object。它支持基元和对象的转换,多维数组和DynaBeans转换
Commons-BeanUtils:ConvertUtils - >用于将String标量值转换为指定Class的对象的实用程序方法,String数组转换为指定Class的数组。
Commons-Lang:ArrayUtils - >对数组,原始数组(如int [])和原始包装数组(如Integer [])的操作。
Commons-Convert:Commons-Convert旨在提供一个专门用于将一种类型的对象转换为另一种类型的任务的库。第一阶段将重点关注Object to String和String to Object转换。
Morph:Morph是一个Java框架,可以简化应用程序的内部互操作性。当信息流经应用程序时,它会经历多次转换。 Morph提供了实现这些转换的标准方法。
Lorentz:Lorentz是一个通用的对象到对象转换框架。它提供了一个简单的API,用于将一种类型的Java对象转换为另一种类型的对象。 (似乎死了)
Spring框架:Spring对PropertyEditors有很好的支持,也可以用来将对象转换为/从Strings转换。
Dozer:Dozer是一个功能强大但又简单的Java Bean到Java Bean映射器,可以递归地将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。
ModelMapper:ModelMapper是一个智能对象映射框架,可以自动将对象相互映射。它使用基于约定的方法来映射对象,同时提供一个简单的重构安全API来处理特定的用例。
OTOM:使用OTOM,您可以将任何对象的任何数据复制到任何其他对象。可能性是无止境。欢迎来到"秋天"。
Smooks:Smooks JavaBean Cartridge允许您从消息数据中创建和填充Java对象(即绑定数据)(评论中由superfilin建议)。
Transmorph(最近),EZMorph,Dozer,ModelMapper,OTOM都是认真的候选人。推土机似乎是最活跃的项目(也许是最先进的)。Orika是一个Java Bean映射框架,可以将数据从一个对象递归复制(以及其他功能)。在开发多层应用程序时它非常有用。