java bean 轉換工具


考量要素: 
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM