MapStruct 是一个 Java 注释处理器,用于为 Java Bean 类生成类型安全和高性能映射器。它使您不必手动编写映射代码,这是一项繁琐且容易出错的任务。生成器具有合理的默认值和许多内置的类型转换,但是在配置或实现特殊行为时,它会逐渐消失。
与在运行时工作的映射框架相比,MapStruct 具有以下优势:
@Mapper
public interface CarMapper {CarMapper INSTANCE = Mapper( CarMapper.class );@Mapping(target = "seatCount", source = "numberOfSeats")CarDto carToCarDto(Car car);
}
在编译时,MapStruct 将生成此接口的实现。生成的实现使用普通的Java方法调用在源对象和目标对象之间进行映射,即不涉及反射。默认情况下,如果属性在源和目标中具有相同的名称,则会映射属性,但您可以使用少量其他批注来控制此方面和许多其他方面。@Mapping
注意此处可能与lombok有冲突 我的建议是直接去除掉lombok这种流氓插件 很多人也非常爱滥用lombok 通常会把类搞得很臃肿
<properties><org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
</properties><dependencies><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${org.mapstruct.version}</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><annotationProcessorPaths><path><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version></path></annotationProcessorPaths></configuration></plugin></plugins>
</build>
平时我们自己写代码通常会涉及到很多Vo,Dto,Entity等的转换 自己写get和set的话很麻烦,用spring或者Apache的BeanUtils方法效率又有问题因为他们是调用的反射 而且转换也不直观 无法预估代码会出现什么问题 但是MapStruct在编译和构建期间就自动生成出来了转换类 完全处于自己可控的范围 而且生成出来的是原生的get set方法 效率上跟原生是相等的
本文发布于:2024-01-27 19:31:18,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063550802190.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |