考量要素: 
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 只是不同类型间的互转,和需求相去胜远 N 3.1.3 https://github.com/cchabanois/transmorph
Commons-Lang ArrayUtils也只是不同类型间的互转 N 3.1 http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/ArrayUtils.html
Commons-Convert 也只是不同类型间的互转,目前在apache的sandbox里 N 1.0-SNAPSHOT http://commons.apache.org/sandbox/commons-convert
Spring framework PropertyEditors也只是不同类型间的互转 N  
EZMorph 能同类型同名属性批量copy N 1.0.6 http://sourceforge.net/projects/ezmorph/
Commons-BeanUtils BeanUtils只能同类型同名属性批量copy,PropertyUtils可以用类似ognl表达式copy嵌套的属性,但这个东西的性能被吐槽不好 Y 1.8.3 http://commons.apache.org/proper/commons-beanutils/
Morph 没找到文档   1.1.1 http://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描述映射 N 1.2 http://code.google.com/p/jmapper-framework/
cglib BeanCopier, BulkBean,BeanMap,FastClass/FastMethod 采用生成字节码的方法,性能相当的高 N 2.3 sourceforge.net/projects/cglib
ognl ognl表达式肯定功能强大 Y 4.0-SNAPSHOT http://commons.apache.org/proper/commons-ognl/
mapping4java 国人造的一个轮子,性能不错 N 1.0 http://code.google.com/p/mapping4java/
Dozer 貌似功能比较强大,可通过xml来配置映射,但性能不行 Y 5.4 https://github.com/DozerMapper/dozer
Orika 一个新秀,比Dozer性能好,可以一试,但没找到配xml的方法 Y 1.4.2 http://orika-mapper.github.io/orika-docs/index.html
ModelMapper 采用约定优于配置的方式自动映射 Y 0.5.6 http://modelmapper.org

java bean 转换工具的更多相关文章

  1. 我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)

    Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换) 有时候要做出如下所示的展示文件大小的效果时候,需要对文件大小进行转换,然后再进行相关的代码逻辑编写. 下面是一个Java ...

  2. java 常用Bean 转换工具类

    package com.hnf.framework.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.data ...

  3. java json转换工具类

    在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换. 在制作自定义的json转换类之前,先引入以下依赖 <!--json相关工具--><de ...

  4. java 图片转换工具

    package com.sicdt.sicsign.web.utils; import java.awt.Graphics2D; import java.awt.image.BufferedImage ...

  5. jxcel - 好用的Excel与Java对象转换工具

    更多精彩博文,欢迎访问我的个人博客 Jxcel简介 Jxcel是一个支持Java对象与Excel(目前仅xlsx.xls)互相转换的工具包. 项目地址:https://github.com/jptan ...

  6. Java Bean拷贝工具Orika原理解析

    最近面试被问及对象拷贝怎样才能高效,实际上问的就是Orika或者BeanCopier的原理.由于网上对Orika原理的解析并不太多-因此本文重点讲解一下Orika的原理.(Orika是基于JavaBe ...

  7. 工具类--BeanUtils----Bean转换工具

    package com.zhouyy.netBank.util; import java.beans.PropertyDescriptor; import java.lang.reflect.Fiel ...

  8. Java bean和json互转时,屏蔽某个属性

    有的时候我们把java bean 转换成json的时候,希望屏蔽掉某个属性,这时可以在java bean的属性上加上@JsonIgnore注解,在com.fasterxml.jackson.annot ...

  9. JAVA -JSON-XML-MAP转换

      //定义一个MAP对象,将对象传给后端接口接收 Map a = ["api": '11', ZGUID: "1231",BESKZ: "1231& ...

随机推荐

  1. j.一个NIO与SSLEngine结合的例子

    对于BIO通道的程序来讲,建立起SSLServerSocket之后,后续的工作就和普通的ServerSocket没有什么区别了,这是因为JDK中通过JSSE的API,封装了SSL通道的实现逻辑,否则, ...

  2. BZOJ1996 [Hnoi2010]chorus 合唱队

    很容易想到区间DP 然后发现这个区间只和圆序列的最后一个数有关,而原序列的最后一个数只可能是现在区间的头或者尾 令$f[i][j][0/1]$表示在区间$[i, j]$之间,原序列的最后一个数是当前区 ...

  3. Oracle 客户端连接服务器[转]

    很多朋友在开发项目中并不是每个人用一个数据库,而是有单独的一台主机作为开发的数据库服务器,这样,就需要我们的开发人员去连接它.          首先是进入oracle的 Net  Mananger:

  4. URAL 2080 Wallet 莫队算法

    题目链接:Wallet 题意:给出n张卡片,k次使用.要求每次使用的卡片都在最上面.首先希望你合理的安排每张卡片的初始位置,并且输出.然后,问每次使用完卡片之后插入的位置上面有几张卡片,才能使得每次使 ...

  5. iOS开发UI篇—Kvc简单介绍

    ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observ ...

  6. iOS开发UI篇—无限轮播(循环利用)

    iOS开发UI篇—无限轮播(循环利用) 一.无限轮播  1.简单说明 在开发中常需要对广告或者是一些图片进行自动的轮播,也就是所谓的无限滚动. 在开发的时候,我们通常的做法是使用一个UIScrollV ...

  7. JavaScript 语句

    JavaScript 语句 JavaScript 语句向浏览器发出的命令.语句的作用是告诉浏览器该做什么. JavaScript 语句 JavaScript 语句是发给浏览器的命令. 这些命令的作用是 ...

  8. 什么是CPA, CPS, CPT?

    在互联网上或移动端进行产品推广时,经常听到很多术语,什么CPA,CPS,CPT等等.不知是怎么来的,今天网上搜一下术语,在这里做一下笔记. CPA(Cost Per Action) 每行动成本. CP ...

  9. JSP相关

    1.javax.servlet.jsp这个包两个接口,六个类 2.先说两个接口,分别是HttpJspPage,JspPage(JspPage是HttpJspPage的父类,JspPage 它自己继承至 ...

  10. PowerShell脚本:随机密码生成器

    脚本名称:s随机密码生成器_v2.63.ps1脚本作用:产生随机密码.每密码字符个数,密码数量,存盘位置等可以自定义.脚本用法:脚本采用了硬编码,所以你需要打开脚本,修改如下变量:$生成密码总个数 = ...