卧槽!Dozer 宣布停止维护,不要再用了。。
点击关注公众号,Java干货及时送达
最近栈长分享了两篇 MapStruct 玩法:
旨在优雅的代替满屏的 get/set 以及 BeanUtils 工具类,然后栈长也收到了一些留言,其中很多朋友就是推荐使用 Dozer 的:
![](https://filescdn.proginn.com/675ad9930a1f1a0f8b21ab25eeeb5a85/377c19fa914d6d99a272f3dfaba51460.webp)
![](https://filescdn.proginn.com/8d431cb70f6344a04c617026a6c3e467/2c6fe8ec0fbbe261b625e68919d582de.webp)
![](https://filescdn.proginn.com/00f549ec1d31015f97ea43f72b8947b9/8f9dfa88cb14f61441fd8f4cc7e2416f.webp)
![](https://filescdn.proginn.com/ef3fe730cede0693262faaa746fe4b0d/ff333753930d121011e33daed6d25df6.webp)
![](https://filescdn.proginn.com/01063f8069d31d0253ab47c927808e56/3da2717696aec332ddeb2f04a9480cb7.webp)
栈长并没有用过 Dozer,朋友们一再推荐,一时搞得我非常好奇,这到底是何方神器,所以很想体验一下这个神器。。
不过当我打开 Dozer Github 时:
![](https://filescdn.proginn.com/2fb40d62407b513eddbaa25ba360e663/71468256b98c6ea804679c2c31663eef.webp)
纳尼?什么鬼?
栈长简单翻译下:
Dozer 项目当前不再维护了,并且将来很大可能被弃用,然后新用户不建议使用了,老用户也推荐大家迁移到 MapStruct 和 ModelMapper 等类库上面去。
![](https://filescdn.proginn.com/6e83e99977a480c138cf4fec2088d227/646163f773a224cce41f0787abfb9acb.webp)
栈长看了历史修改记录,是 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 搜索趋势:
![](https://filescdn.proginn.com/19e90606e409f7ae158fdc8baa5df856/e9729855059b277ffa7488759bdfbbdc.webp)
可以看到,在全球过去的一年时间,MapStruct 独占鳌头,然后就是 ModelMapper 紧随其后!
![](https://filescdn.proginn.com/f7b25fbb98059c999691cc23e066f033/20b655297f0dfa6d717fb799130865bf.webp)
上图调整到了中国,数据很少,显然中国地区使用 Google 搜索的相对不多,但也能看到 MapStruct 确实是使用最多的,另外就是 Dozer、ModelMapper 了。
所以,用哪个大家心中应该有个数了,个人建议尽量用主流的、用多比较多的,比如 MapStruct,毕竟它是最主流的,大家感兴趣的话可以关注公众号:Java技术栈,栈长会陆续分享更多实用教程。
至于那些坚持写满屏的 get/ set 和 BeanUtils 的也没有毛病,只要代码运行不出错,怎么写都没有问题的。不管用什么,实际工作中也不是个人能选择的,需要遵守整体技术团队的规范。
话说你们公司用的哪个呢?欢迎投票分享!
所以,你还在用 Dozer 吗?赶紧发给身边的同事看看吧,及时迁移到别的主流类库上,不然时间久了可能给系统带来隐患。
好了,今天的分享就到这里了,后面栈长会分享更多好玩的 Java 技术和最新的技术资讯,关注公众号Java技术栈第一时间推送,我也将主流 Java 面试题和参考答案都整理好了,在公众号后台回复关键字 "面试" 进行刷题。
最后,觉得我的文章对你用收获的话,动动小手,给个在看、转发,原创不易,栈长需要你的鼓励。
版权声明: 本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。
![](https://filescdn.proginn.com/e6de709b31b5c1730aa0f8df4f0065c2/ada409b5207e37d8be2b24bb586080b6.webp)
![](https://filescdn.proginn.com/d01d20b86c9e70fa6719b7b39e239aca/0e58d5141b4ec35170769999e6fd6c4b.webp)
![](https://filescdn.proginn.com/113a723d8385c98df48e774d01855d90/bd01a4c5882ffbd2a6f1503d94df0f30.webp)
![](https://filescdn.proginn.com/bbff5c211401e75c87317400aeb07aff/6a9b4d7d6d64ca7918709b2afb7aa56d.webp)
![](https://filescdn.proginn.com/3d1432d8f993ed650d82a9e21ef24035/2696e76d673558549360f6993d043c4a.webp)
![](https://filescdn.proginn.com/23074032bf724c35a81d9e8494d8724d/8979bb3f5db741e0d276f067b4553ab2.webp)
关注Java技术栈看更多干货
![](https://filescdn.proginn.com/c6d84e193ea00e3e2fa44b015c524968/bdb5d28d8a05e65dd138be2b42f59484.webp)