栈长简单翻译下:
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对象。