为Java对象的任何工具,对象映射? [关闭]

问题描述 投票:216回答:9

我想转换为使用Java和寻找开始写我自己之前的自动化工具来完成对DTO。我只是想知道是否有任何免费的工具,可用于相同。

java mapping dto
9个回答
105
投票

你可以尝试Dozer

推土机是一个Java Bean为Java Bean映射器,从一个物体递归地将数据复制到另一个。通常情况下,这些Java组件会有所不同复杂类型的。

推土机支持简单属性映射,复杂类型的映射,双向映射,隐式显式的映射,以及递归映射。这包括还需要在单元级映射映射属性集合。


377
投票

还有一些图书馆身边有:

  • Commons-BeanUtils:ConvertUtils - >用于将字符串标量值到指定的类的对象,字符串数组到指定的类的阵列实用方法。
  • Commons-Lang:ArrayUtils - 对数组>操作,原始阵列(如int [])和原始包装器阵列(如Integer [])。
  • Spring framework:弹簧具有用于属性编辑,即也可以使用到对象从字符串变换/一种优异的载体。
  • Dozer:推土机是一款功能强大,简单的Java Bean为Java Bean映射器,从一个物体递归地将数据复制到另一个。通常情况下,这些Java组件会有所不同复杂类型的。
  • ModelMapper:ModelMapper是一个智能对象映射框架,自动映射对象到彼此。它采用传统为基础的方法,同时对处理特定使用案例提供了一个简单的重构安全API映射对象。
  • MapStruct:MapStruct是一个编译时间码发生器,用于bean映射,从而导致快速(无反射或类似的用法),依赖性少并在运行时类型安全映射代码。
  • Orika:Orika使用字节代码生成创建以最小的开销快速映射器。
  • Selma:编译时代码生成的映射
  • JMapper:使用注释,XML或API豆映射代
  • Smooks:在Smooks的JavaBean的墨盒,您可以创建和填充从消息数据(即绑定数据)(在评论由superfilin建议)Java对象。 (不再正在积极开发中)
  • Commons-Convert:用CC-转换的目的在于提供专用于一个类型的对象转换成另一种的任务的单个库。第一阶段将重点对象和字符串到对象的转换。 (好像死了,上次更新2010)
  • Transmorph:Transmorph是用于一种类型的Java对象转换成另一种类型的对象的自由Java库(与另一签名,可能参数化)。 (好像死了,上次更新2013)
  • EZMorph:EZMorph是转换对象的另一个对象简单的java库。它支持转换为基元和对象,多维数组和转换与DynaBeans (好像死了,最后更新2008)
  • Morph:变身是一个Java框架,它可以简化应用程序的内部互操作性。由于信息流过的应用程序时,其经历多个转换。变身提供了实现这些转换的标准方式。 (好像死了,上次更新2008)
  • Lorentz:洛伦兹是一个通用的对象到对象转换框架。它提供了一个简单的API来将一种类型的Java对象转换成另一种类型的对象。 (好像死了)
  • qazxsw POI:随着ATOM,你可以从一个对象复制任何数据到任何其他对象。可能性是无止境。欢迎来到“秋”。 (好像死了)

31
投票

另一个是Orika - OTOM

Orika是一个Java Bean映射框架,递归副本(其它功能中的)数据从一个对象到另一个。发展多层次的应用程序时,它可以是非常有用的。

Orika关注于自动化尽可能,同时通过配置和扩展提供定制需要的地方。

Orika使开发人员能够:

  • 地图复杂和深刻的结构化对象
  • “拼合”或“扩展”通过映射嵌套属性,以顶级属性,反之亦然对象
  • 创建于即时映射器和应用自定义设置来控制部分或全部映射
  • 按类型,或者甚至通过特定属性名称 - 在一组特定的对象的对象图中的任何位置的映射创建用于完全控制转换器
  • 处理的代理或增强对象(如那些休眠的,或各种模拟框架)
  • 应用双向映射与一个配置
  • 映射到相应的具体类的实例为目标的抽象类或接口
  • 手柄反向映射
  • 手柄超越JavaBean的规范复杂的约定。

Orika使用字节代码生成创建以最小的开销快速映射器。


21
投票

https://github.com/orika-mapper/orika是另一个值得检查出库。 ModelMapper的设计是从,它在其他图书馆不同:

  • 通过智能地匹配源和目标特性的对象模型自动映射
  • 提供了使用实际的代码映射字段和方法,而不是使用字符串重构安全的API映射
  • 利用基于约定配置的自定义方案操作简单

退房ModelMapper网站的详细信息:

ModelMapper


13
投票

使用Apache公地的BeanUtils:

从原点豆到目的地豆所有情况下的属性名相同http://modelmapper.org - 复制属性值。

static void copyProperties(Object dest, Object orig)


6
投票

还有一个Java映射引擎/框架Nomin:http://commons.apache.org/proper/commons-beanutils/


3
投票

我建议你尝试http://nomin.sourceforge.net

这是一个Java bean为Java Bean映射器,允许你动态地注释和/或XML进行数据的通道。

随着JMapper,您可以:

  • 创建和丰富的目标对象
  • 应用特定逻辑到映射
  • 自动管理XML文件
  • 落实1到N和N到1间的关系
  • 实现显式转换
  • 应用继承的配置

2
投票

我很高兴地哞添加作为一个选项,但显然我朝它偏向:JMapper Framework

这是很容易使用简单的情况下,合理的能够为更复杂的情况,虽然仍有一些地方我可以想像增强它甚至进一步复杂性。


2
投票

您也可以尝试映射框架基于推土机,但与Excel映射声明。他们有一些工具和更多的很酷的功能。检查在http://geoffreywiseman.github.com/Moo/

© www.soinside.com 2019 - 2024. All rights reserved.