相关文章推荐
帅呆的毛衣  ·  pytorch - ...·  1 年前    · 
坐怀不乱的绿茶  ·  python 卷积计算-掘金·  1 年前    · 

栈长简单翻译下:

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 重磅发布,黑暗模式太炸了!

5. 《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

最近栈长分享了两篇 MapStruct 玩法:MapStruct 基础玩法MapStruct 高级玩法旨在优雅的代替满屏的 get/set 以及 BeanUtils 工具类,然后栈长也收到了一些留言,其中很多朋友就是推荐使用 Dozer 的:栈长并没有用过 Dozer,朋友们一再推荐,一时搞得我非常好奇,这到底是何方神器,所以很想体验一下这个神器。。不过当我打开 Dozer Github 时:纳尼?什么鬼?栈长简单翻译下:Dozer 项目当前不再维护了,并且将来很大可
赠送jar包: dozer -5.5.1.jar; 赠送原API文档: dozer -5.5.1- java doc.jar; 赠送源代码: dozer -5.5.1-sources.jar; 赠送Maven依赖信息文件: dozer -5.5.1.pom; 包含翻译后的API文档: dozer -5.5.1- java doc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:net.sf. dozer : dozer :5.5.1; 标签:sf、 dozer 、中英对照文档、jar包、 java ; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
BeanUtils.copyProperties 是大家代码里最常出现的工具类,但只要你不把它用错成 Apache 包下的,而是使用 Spring 提供的,就基本还不会对性能造成多大影响。 但如果说性能更好,可替代手动get、set的,还是 MapStruct 更好用,因为它本身就是在编译期生成get、set代码,和我们写get、set一样。 其他一些组件包主要基于 AOP、ASM、CGlib,的技术手段实现的,所以也会有相应的性能损耗
公司搭建了一台linux服务器centos7.6纯净版的系统,所有配置都设置好了,telnet 172.16.100.100 1521 服务是通的,但是启动tomcat服务的时候,就是提示数据库连接池死锁,连接不上去,使用traceroute路由命令跟踪ip也是正常。。。。。各种排查原因都不行。最后发现是Linux主机名称更改了,但是hosts文件还是默认的没有更改。 1、查看linux服务器主机名称 hostnamectl
Dozer Mapper是一个 Java 类转换工具,可以用于将一个 Java 对象转换为另一个 Java 对象。它可以通过配置文件或代码来定义转换规则和映射关系。根据引用中的代码示例,可以使用 Dozer 的` Dozer BeanMapper`类来创建一个Mapper对象,并通过`setMappingFiles`方法设置映射文件。根据引用中的配置示例,映射文件是以XML格式编写的,其中定义了类之间的映射关系和字段的映射关系。然后,可以通过Mapper对象的`map`方法将源对象转换为目标对象。根据引用中的代码示例,可以通过`new Dozer BeanMapper()`来创建一个Mapper对象,并可以选择传入包含映射文件路径的列表来初始化Mapper对象。