加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

英特尔20GB绝密芯片工程数据遭窃

发布时间:2021-02-17 12:21:08 所属栏目:外闻 来源:互联网
导读:MapStruct的性能 前面说了这么多MapStruct的用法,可以看出MapStruct的使用还是比较简单的,并且字段映射上面的功能很强大,那么他的性能到底怎么样呢? 参考《为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?》中的示例,我们对MapStruct进行性能

MapStruct的性能

前面说了这么多MapStruct的用法,可以看出MapStruct的使用还是比较简单的,并且字段映射上面的功能很强大,那么他的性能到底怎么样呢?

参考《为什么阿里巴巴禁止使用Apache Beanutils进行属性的copy?》中的示例,我们对MapStruct进行性能测试。

分别执行1000、10000、100000、1000000次映射的耗时分别为:0ms、1ms、3ms、6ms。

可以看到,MapStruct的耗时相比较于其他几款工具来说是非常短的。

那么,为什么MapStruct的性能可以这么好呢?

其实,MapStruct和其他几类框架最大的区别就是:与其他映射框架相比,MapStruct在编译时生成bean映射,这确保了高性能,可以提前将问题反馈出来,也使得开发人员可以彻底的错误检查。

还记得前面我们在引入MapStruct的依赖的时候,特别在maven-compiler-plugin中增加了mapstruct-processor的支持吗?

并且我们在代码中使用了很多MapStruct提供的注解,这使得在编译期,MapStruct就可以直接生成bean映射的代码,相当于代替我们写了很多setter和getter。

如我们在代码中定义了以下一个Mapper:

 

我们只需要在PersonConverter中在定义一个方法(因为PersonConverter是一个接口,所以在JDK 1.8以后的版本中可以定义一个default方法),这个方法的作用就是将HomeAddress转换成String类型。

default方法:Java 8 引入的新的语言特性,用关键字default来标注,被default所标注的方法,需要提供实现,而子类可以选择实现或者不实现该方法

然后在dto2do方法上,通过以下注解方式即可实现类型的转换:

 

型不一致的如何映射

还是上面的例子,如果我们需要在Person这个对象中增加家庭住址这个属性,那么我们一般在PersonoDTO中会单独定义一个HomeAddress类来表示家庭住址,而在Person类中,我们一般使用String类型表示家庭住址。

这就需要在HomeAddress和String之间使用JSON进行互相转化,这种情况下,MapStruct也是可以支持的。

 

公民至上的方法

持续沟通以确保公民和利益相关者的参与是任何超连接城市计划成功的基础,重要的是,这不仅仅说明问题,这也与聆听有关。

关键是要解释正在开发的内容、原因、方式和时间,以克服公众对数据可靠性、安全性和集体使用的忧虑。这一点特别重要,因为需要匿名的汇总信息来告知机器学习和部署方面的改进。

公众需要知道对他们有什么好处,并且系统和流程可以信任。至关重要的是,正在开发的产品必须能够满足公民和利益相关者不断变化的需求,并且在任何计划中,公众的接受都必须是首要的。

不只是智慧城市

高度互联的城市是要通过技术释放的全部经济、社会、环境和商业价值,以成为一个高度互联的城市中心,无论是通过物联网,人工智能还是通过移动连接。 这是通过利用新的数字技术以及数据来获得有关如何改善城市生态系统中的性能的见解,并解决所有与之息息相关的公民和企业利益相关者。

从长远来看,建设高度互联的城市可以产生积极的成果,既解决关键的社会问题,又解决经济挑战。起步当然是一大障碍,但正确的入门同样重要。为了从这些计划中受益,城市需要从多方面考虑,并制定长期的长期战略。


(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读