1.Orika
github主页:https://github.com/orika-mapper/orikagit
-
支持递归映射;github
-
实现原理:使用了字节码生成技术,运行时生成bean到bean的getter setter转换类;缓存
-
优势: Orika使用简单,公司就是使用Orika封装成工具类来使用的;app
-
缺点: 运行时生成映射类,虽然会缓存,但第一次使用的时候会慢点;框架
2.Mapstruct
github主页:https://github.com/mapstruct/mapstructurl
- 支持递归映射;
- 实现原理:基于JSR269,编译时生成getter setter转换类;
JSR269: https://jcp.org/en/jsr/detail?id=269.net
- 优势: 编译时生成映射类,运行时无感;
- 缺点: 想要优雅使用,就稍微有点复杂,须要阅读熟悉一些使用方法;想要简单使用的话,仍是很简单的, 声明一个接口和方法,添加一些注解和入参就能够自动生成getter setter实现类了;
总结: 以上两个映射框架,都支持递归映射,都是直接调用setter进行赋值的;最快的对象映射,也就是直接调用setter了吧;对象