最近棧長分享了兩篇 MapStruct 玩法:
旨在優雅的代替滿屏的 get/set 以及 BeanUtils 工具類,然後棧長也收到了一些留言,其中很多朋友就是推薦使用 Dozer 的:
棧長並沒有用過 Dozer,朋友們一再推薦,一時搞得我非常好奇,這到底是何方神器,所以很想體驗一下這個神器。。
不過當我打開 Dozer Github 時:
納尼?什麼鬼?
棧長簡單翻譯下:
Dozer 項目當前不再維護了,並且將來很大可能被棄用,然後新用戶不建議使用了,老用戶也推薦大家遷移到 MapStruct 和 ModelMapper 等類庫上面去。
棧長看了歷史修改記錄,是 2021/04/07 這天提交的不再維護的記錄,事情已經過去大半年了,整個項目也已經大半年沒有更新了。。
既然 Dozer 已經不再維護,並且即將被棄用了,我也就沒有體驗的必要了,當然也不推薦大家使用了,免得入坑!
如果大家項目中有用到 Dozer 的,也建議考慮遷移到別的 Bean 映射工具,比如:MapStruct、Orika、ModelMapper、JMapper 等等,至於它們的性能如何,棧長找到了一篇國外的評測報告:
https://www.baeldung.com/java-performance-mapping-frameworks
實測結果:
Framework Name | p0.90 | p0.999 | p1.0 |
---|---|---|---|
JMapper | 10-3 | 0.008 | 64 |
MapStruct | 10-3 | 0.010 | 68 |
Orika | 0.006 | 0.278 | 32 |
ModelMapper | 0.083 | 2.398 | 97 |
Dozer | 0.146 | 4.526 | 118 |
我們可以看到性能最好的顯然屬於 JMapper,MapStruct 緊隨其後,Dozer 性能最差,當然這個評測數據僅供參考,不同的版本、環境可能還會有不同的表現。
我們再來看下 Google 搜索趨勢:
可以看到,在全球過去的一年時間,MapStruct 獨佔鰲頭,然後就是 ModelMapper 緊隨其後!
上圖調整到了中國,數據很少,顯然中國地區使用 Google 搜索的相對不多,但也能看到 MapStruct 確實是使用最多的,另外就是 Dozer、ModelMapper 了。
所以,用哪個大家心中應該有個數了,個人建議儘量用主流的、用多比較多的,比如 MapStruct,畢竟它是最主流的,大家感興趣的話可以關注公衆號:Java技術棧,棧長會陸續分享更多實用教程。
至於那些堅持寫滿屏的 get/ set 和 BeanUtils 的也沒有毛病,只要代碼運行不出錯,怎麼寫都沒有問題的。不管用什麼,實際工作中也不是個人能選擇的,需要遵守整體技術團隊的規範。
話說你們公司用的哪個呢?歡迎投票分享!
所以,你還在用 Dozer 嗎?趕緊發給身邊的同事看看吧,及時遷移到別的主流類庫上,不然時間久了可能給系統帶來隱患。
好了,今天的分享就到這裏了,後面棧長會分享更多好玩的 Java 技術和最新的技術資訊,關注公衆號Java技術棧第一時間推送,我也將主流 Java 面試題和參考答案都整理好了,在公衆號後臺回覆關鍵字 "面試" 進行刷題。
最後,覺得我的文章對你用收穫的話,動動小手,給個在看、轉發,原創不易,棧長需要你的鼓勵。
版權聲明: 本文系公衆號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請註明出處,抄襲者一律舉報+投訴,並保留追究其法律責任的權利。
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.別在再滿屏的 if/ else 了,試試策略模式,真香!!
3.臥槽!Java 中的 xx ≠ null 是什麼新語法?
4.Spring Boot 2.5 重磅發佈,黑暗模式太炸了!
覺得不錯,別忘了隨手點贊+轉發哦!