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了吧;對象