我正在尝试使用java将DO转换为DTO,并在开始编写自己的工具之前寻找自动化工具。我只是想知道是否有同样的免费工具可用。
你可以试试推土机。
Dozer是一个Java Bean到Java Bean 递归复制数据的映射器 从一个物体到另一个物体。通常情况下, 这些Java bean将是不同的 复杂类型。< / p > 推土机支持简单属性 映射,复杂类型映射, 双向映射, 隐式-显式映射,以及 递归的映射。这包括 映射集合属性 还需要在元素处进行映射 水平。< / p >
使用Apache commons beanutils:
< p > static void copyProperties(Object dest, Object orig) -将所有属性值从源bean复制到目标bean 属性名为的情况 相同。< / p >
static void copyProperties(Object dest, Object orig)
http://commons.apache.org/proper/commons-beanutils/
附近有一些图书馆:
Commons-BeanUtils: ConvertUtils ->用于将字符串标量值转换为指定类的对象,将字符串数组转换为指定类的数组的实用方法。
common - lang : ArrayUtils ->对数组、原始数组(如int[])和原始包装器数组(如Integer[])的操作。
Spring框架: Spring对propertyeditor有很好的支持,也可以用来将对象转换为字符串。
Dozer: Dozer是一个功能强大但简单的javabean到javabean映射器,可以递归地将数据从一个对象复制到另一个对象。通常,这些Java bean将是不同的复杂类型。
ModelMapper: ModelMapper是一个智能对象映射框架,可以自动将对象相互映射。它使用一种基于约定的方法来映射对象,同时提供了一个简单的重构安全API来处理特定的用例。
MapStruct: MapStruct是用于bean映射的编译时代码生成器,可在运行时生成快速(不使用反射或类似方法)、无依赖性和类型安全的映射代码。
Orika: Orika使用字节码生成以最小开销创建快速映射器。
Selma:用于映射的编译时代码生成器
<罢工> < a href = " http://jmapper-framework.github。io/ JMapper -core/" rel="noreferrer">JMapper:使用Annotation, XML或API生成Bean映射器(似乎已经死亡,最近更新于2年前)
Smooks: The Smooks JavaBean Cartridge允许您从您的消息数据创建和填充Java对象(即绑定数据)(建议superfilin in comments)。(不再开发中)
Commons-Convert: Commons-Convert旨在提供一个专门用于将一种类型的对象转换为另一种类型的任务的单一库。第一阶段将侧重于对象到字符串和字符串到对象的转换。(似乎已经死了,上一次更新是2010年)
transformph : transformph是一个免费的java库,用于将一种类型的java对象转换为另一种类型的对象(具有另一种签名,可能是参数化的)。(似乎死了,上次更新2013年)
<罢工> < a href = " http://aalmiray.github。io/ezmorph/" rel="noreferrer"> ezmorph : ezmorph是简单的java库,用于将一个对象转换为另一个对象。它支持原语和对象的转换,多维数组的转换和dynabean的转换(似乎已经死了,上次更新于2008年)
Morph: Morph是一个简化应用程序内部互操作性的Java框架。当信息在应用程序中流动时,它经历了多次转换。Morph提供了一种实现这些转换的标准方法。(似乎死了,上次更新2008)
Lorentz: Lorentz是一个通用的对象到对象转换框架。它提供了一个简单的API来将一种类型的Java对象转换为另一种类型的对象。(似乎死了)
OTOM:使用OTOM,您可以将任何数据从任何对象复制到任何其他对象。可能性是无限的。欢迎来到“秋天”。(似乎死了)
还有一个Java映射引擎/框架Nomin: http://nomin.sourceforge.net。
它在简单的情况下很容易使用,在更复杂的情况下也很有能力,尽管我仍然可以想象在一些方面对它进行进一步的改进,以解决更复杂的问题。
另一个是Orika - https://github.com/orika-mapper/orika
Orika是一个Java Bean映射框架,它可以递归地将数据从一个对象复制到另一个对象(还有其他功能)。它在开发多层应用程序时非常有用。 Orika专注于尽可能地实现自动化,同时在需要时通过配置和扩展提供定制。 Orika允许开发人员: 映射复杂和深度结构的对象 “Flatten"或“;Expand"对象通过将嵌套属性映射到顶级属性,反之亦然 动态创建映射器,并应用自定义来控制部分或全部映射 创建转换器,以完全控制对象图中任意位置的特定对象集的映射——通过类型,甚至通过特定的属性名 处理代理或增强对象(如Hibernate的代理或各种模拟框架) 使用一个配置应用双向映射 映射到目标抽象类或接口的适当具体类的实例 处理反向映射 处理JavaBean规范之外的复杂约定。 Orika使用字节代码生成以最小的开销创建快速映射器。
Orika是一个Java Bean映射框架,它可以递归地将数据从一个对象复制到另一个对象(还有其他功能)。它在开发多层应用程序时非常有用。
Orika专注于尽可能地实现自动化,同时在需要时通过配置和扩展提供定制。
Orika允许开发人员:
Orika使用字节代码生成以最小的开销创建快速映射器。
我的ModelMapper是另一个值得一试的库。ModelMapper的设计不同于其他库,因为它:
查看ModelMapper网站以获取更多信息:
http://modelmapper.org
我建议你试试jmap框架。
它是一个Java bean到Java bean的映射器,允许您使用注释和/或XML动态地执行数据传递。
使用JMapper你可以: