旧爱(BeanUtils.copyProperties)
What & HOW
Why
- 无脑丝滑操作
Why Not
- 无脑,复制存在不确定性
- 局限性(Java Can’t to PB )
- 性能差(其实无所谓啦,ToB业务 再差能差多少)
principle
新欢(MapStruct)
What & HOW
https://mapstruct.org/
Why Not
- 稍微要配置那么一下下,写一个Interface
Why
- 赋值严谨
- 适配高,可用@Mapping注释去做不同类型的映射
- 适用Build,Get 等
- 性能强一点,copy快一点
principle
- 生成 imp 类型实现Mapper接口
- 映射对应参数进行 get / set; build 复制操作
WARN
两者性能比较
图
自测对比图
其他对比图
- 原理上来讲,getter/ Setter 方式与MappStruct 耗时应该一样;MapStruct 每次生成新对象,判空会稍微耗时一些