天天看点

Bean映射Spring BeanUtilCglib BeanCopierSpring BeanCopierOrika

Bean映射

  • Spring BeanUtil
  • Cglib BeanCopier
  • Spring BeanCopier
  • Orika

Spring BeanUtil

org.springframework.beans.BeanUtils#copyProperties

基于反射做的,性能不高,使用场景不频繁对性能没有要求的可以借用下

Cglib BeanCopier

net.sf.cglib.beans.BeanCopier#copy

基于ASM进行字节码操作,编译时生成代理类,运行时直接执行class文件,性能较好

缺点:

  • 不支持自定义对象的深拷贝
  • 两个对象的属性字段类型、命名、getter|setter方法要保持一致,否则会拷贝失败
  • BigDecimal的拷贝有精度问题

Spring BeanCopier

org.springframework.cglib.beans.BeanCopier#copy

基于cglib的实现的,其实就是引入了cglib源码做了一些封装,cglib源码痕迹非常清晰,性能参考cglib的BeanCopier

Orika

http://orika-mapper.github.io/orika-docs/index.html

继续阅读