主要观点总结
本文介绍了MapStruct框架的进阶用法,包括expression、qualifiedByName、nullValueMappingStrategy、Decorator等特性的使用。
关键观点总结
关键观点1: MapStruct简介
MapStruct是一个Java编译时注解处理框架,用于将一种Java Bean对象自动映射成另一种类型的对象,具有简洁、性能优秀、安全、灵活和良好的IDE支持等特点。
关键观点2: expression特性
在转化时,可以通过expression执行Java表达式,例如设置createTime字段的值为System.currentTimeMillis()。
关键观点3: qualifiedByName特性
做映射时,默认情况下使用get/set方法,如果需求复杂,可以使用qualifiedByName指定使用其他的处理方法,如将name字段转化为大写格式。
关键观点4: nullValueMappingStrategy策略
当source为null时,对应的target的处理策略可以通过nullValueMappingStrategy设置。默认是RETURN_NULL,也可以设置为RETURN_DEFAULT,如将null的ids字段设置为空list。
关键观点5: Decorator特性
可以通过创建一个Decorator类来修饰方法并实现全局处理,例如对空字段赋予特定的默认值。
文章预览
前言 MapStruct 是一个 Java 编译时注解处理框架,用来自动化将一种 Java Bean 对象映射成另一种类型的对象。 该框架的主要目标是使开发人员在尽可能少的代码和最低的运行时间成本下实现属性映射。MapStruct 通过在编译时生成代码来实现这点,这与大多数其他 Java Bean 映射框架在运行时通过反射进行映射形成了鲜明对比。 MapStruct 具有以下主要特性: 简洁: 简化了 Java Beans 之间转换的代码,自动生成使用简单的赋值语句完成的映射实现。 性能优秀: 由于 MapStruct 是在编译时生成代码,不涉及任何反射,因此执行映射的性能优越。 安全: 通过在编译时生成映射代码,MapStruct 提供了类型安全的映射,并能在编译时就发现潜在的错误。 灵活: 可通过自定义转换方法、类型转换和映射策略等来满足复杂的映射需求。 良好的 IDE 支持: 由于 MapStruct 是
………………………………