`
xpenxpen
  • 浏览: 711104 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java bean之间的互转

阅读更多
java bean之间的互转

需求:比如DO到DTO的转换。
考量要素:
1.简单的约定优于配置的同名属性copy
2.嵌套属性copy
3.flattern(扁平化)支持,要支持N层结构的copy到一层结构。
4.性能

如下这个网页,里面提到了好多工具。
http://stackoverflow.com/questions/1432764/any-tool-for-java-object-to-object-mapping
注意到许多工具采用静态化的生成java字节码的方式,这样和hardcode性能所差无几了。

id描述是否支持flattern最新版本URL
Transmorph只是不同类型间的互转,和需求相去胜远N3.1.3https://github.com/cchabanois/transmorph
Commons-Lang ArrayUtils也只是不同类型间的互转N3.1http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/ArrayUtils.html
Commons-Convert 也只是不同类型间的互转,目前在apache的sandbox里N1.0-SNAPSHOThttp://commons.apache.org/sandbox/commons-convert
Spring frameworkPropertyEditors也只是不同类型间的互转N
EZMorph能同类型同名属性批量copyN1.0.6http://sourceforge.net/projects/ezmorph/
Commons-BeanUtilsBeanUtils只能同类型同名属性批量copy,PropertyUtils可以用类似ognl表达式copy嵌套的属性,但这个东西的性能被吐槽不好Y1.8.3http://commons.apache.org/proper/commons-beanutils/
Morph没找到文档1.1.1http://sourceforge.net/projects/morph/
Lorentz 似乎死了
OTOM "Autumn"没找到文档https://java.net/projects/otom
Smooks没找到文档,貌似可以多种格式比如csv,java bean,jms消息互转,不是我们的需求场景https://github.com/smooks/smooks http://www.infoq.com/cn/articles/event-streaming-with-smooks
JMapper支持annotaion描述映射N1.2http://code.google.com/p/jmapper-framework/
cglibBeanCopier, BulkBean,BeanMap,FastClass/FastMethod 采用生成字节码的方法,性能相当的高N2.3sourceforge.net/projects/cglib
ognlognl表达式肯定功能强大Y4.0-SNAPSHOThttp://commons.apache.org/proper/commons-ognl/
mapping4java 国人造的一个轮子,性能不错N1.0http://code.google.com/p/mapping4java/
Dozer 貌似功能比较强大,可通过xml来配置映射,但性能不行Y5.4https://github.com/DozerMapper/dozer
Orika 一个新秀,比Dozer性能好,可以一试,但没找到配xml的方法Y1.4.2http://orika-mapper.github.io/orika-docs/index.html
ModelMapper 采用约定优于配置的方式自动映射Y0.5.6http://modelmapper.org


一些参考资料
cglib相关性能测试对比http://www.iteye.com/topic/801577
cglib源码学习交流http://www.iteye.com/topic/799827
我也造了个轮子:BeanMapping(属性拷贝)http://agapple.iteye.com/blog/1075671
分享到:
评论

相关推荐

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    JavaXml及Bean互转

    将Java Bean与XML进行互转是常见的需求,这有助于在不同系统间传递数据或者持久化对象状态。本篇将详细介绍两种常用的Java XML与Bean互转方法:XStream库和JAXB(Java Architecture for XML Binding)框架。 一、...

    java bean和map之间的互转

    在Java编程中,Java Bean和Map是两种常用的...总的来说,Java Bean和Map之间的互转在Java开发中非常常见,尤其是在数据交换和视图渲染时。理解并掌握这两种数据结构的转换技巧,有助于提升开发效率和代码的可维护性。

    任意深度xml与bean的互转

    标题“任意深度xml与bean的互转”涉及的技术点是关于如何处理任意层次结构的XML文档,并将其转换为Java Bean对象,反之亦然。这种转换对于数据的解析和存储具有重要的实际意义。 描述中提到的“属性中不管是基础...

    jaxb XMl和BEAN互转实例(内含jar包)

    在给定的"jaxb XMl和BEAN互转实例(内含jar包)"中,我们有一个实用工具类,它简化了使用JAXB进行XML与BEAN对象之间转换的过程。 在Java编程中,BEAN通常指的是符合JavaBeans规范的简单Java类,它们通常包含getter...

    利用jaxb实现xml和bean互转

    通过以上内容,我们可以看到JAXB如何简化了XML和Java Bean之间的转换,使得开发人员能够更加专注于业务逻辑,而不是数据序列化和反序列化的细节。理解并熟练运用JAXB,对于处理XML数据的Java开发者来说,是一项重要...

    java使用commons-betwixt 实现bean与xml互转

    Java中的Apache Commons Betwixt库提供了一个简单的方法来映射Java Bean对象和XML文档之间的数据,使得在处理数据交换时能轻松地实现bean到XML的转换和XML到bean的反转换。本篇文章将深入探讨如何使用Commons ...

    xml与javabean之间的互转

    主要用于开发中常见的xml与javabean之间的数据互转,减少重复代码的编写,支持xml对应字段中的集合数据类型(只能为list)。现不支持bean转换成xml时不指定字段所对应xml元素结点名称的情况,所有的字段必需指定生成...

    利用JAXB进行xml和javabean之间转换

    而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档之间进行转换。通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发...

    JAXBUtil使用JAXB进行xml和bean互转

    本篇文章将深入探讨如何使用JAXBUtil来实现XML和bean之间的互转,并基于提供的文件`JaxbObjectAndXmlUtil.java`和`ReqMsBean.java`进行实例解析。 首先,我们来看`ReqMsBean.java`,这是一个简单的Java Bean定义,...

    json与java对象互转

    ### JSON与Java对象互转:深入理解与实践 在现代软件开发中,JSON(JavaScript Object Notation)作为数据交换的标准格式之一,其轻量级、易于读写的特点使其成为跨平台数据传输的首选。Java作为一种广泛使用的编程...

    xml解析及使用XStream实现javaBean与xml之间的转换

    本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...

    java json互转demo

    Java与JSON之间的转换是开发过程中常见的任务,尤其是在Web服务或者数据交换中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以...

    java对象与xml的互相转换

    Java对象与XML之间的转换是Java开发中常见的需求,特别是在数据交换、配置文件存储或Web服务交互等场景。本文将深入探讨如何实现Java对象到XML以及XML到Java对象的转换。 首先,Java对象到XML的转换通常涉及到Java...

    JSON与JAVA数据的转换

    而在Java编程语言中,处理JSON数据通常涉及到将JSON字符串或对象转换为Java对象(如`Map`、`List`、自定义Java Bean类等),以及反之亦然的过程。 #### JSON与Java数据类型的对应关系 1. **JSON Object <-> Java ...

    uml ejb EJB与JAVA BEAN的区别

    【EJB】企业Java Bean(Enterprise JavaBeans,简称EJB)是Java EE平台的一部分,主要用于构建分布式的企业级应用程序。EJB提供了服务器端组件模型,这些组件在Java EE应用服务器中运行,处理业务逻辑,实现了安全性...

    XML、JAVA、JSON多种方式互相转换

    - Gson库同样提供了类似的`toJson`和`fromJson`方法,方便地在Java对象和JSON字符串之间转换。 4. JSON和XML的比较: - JSON通常被认为比XML更轻量级,解析和生成更快,更适合在网络传输中使用。 - XML提供更...

    使用json-lib将java对象转换成json字符串

    1. **JSON与Java对象的互转**: - JSON对象可以映射为Java对象,如HashMap、ArrayList等。JSON字符串到Java对象的转换通常通过反序列化实现,而Java对象到JSON字符串的转换则称为序列化。 - json-lib库提供了一套...

    java源码包---java 源码 大量 实例

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...

    通过fastjson实现各种格式与json之间的转换

    通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar

Global site tag (gtag.js) - Google Analytics