• 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
  • 相关阅读:
    [LeetCode] 137. Single Number II
    [LeetCode] 136. Single Number
    [LeetCode] 678. Valid Parenthesis String
    [LeetCode] 605. Can Place Flowers
    [LeetCode] 419. Battleships in a Board
    [LeetCode] 1002. Find Common Characters
    [LeetCode] 912. Sort an Array
    [LeetCode] 350. Intersection of Two Arrays II
    [LeetCode] 349. Intersection of Two Arrays
    [LeetCode] 820. Short Encoding of Words
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/5937855.html
Copyright © 2020-2023  润新知