MapStruct系列
文章平均质量分 86
mapstruct是一种实体类映射框架,能够通过Java注解将一个实体类的属性安全地赋值给另一个实体类。
墨 禹
一个追求有道有术的非典型程序员
展开
-
MapStruct系列(10)-注解汇总大全
文章目录前言@Mapper@Mapping@Mappings@BeforeMapping @AfterMapping@BeanMapping@InheritConfiguration @InheritInverseConfiguration@IterableMapping@ValueMapping @ValueMappings@SubclassMapping @SubclassMappings@TargetType@Named@MapperConfig@EnumMapping@DecoratedWith@C原创 2022-04-15 16:54:29 · 5875 阅读 · 0 评论 -
MapStruct系列(9)-复用映射配置
原创 2022-04-15 11:24:29 · 3443 阅读 · 0 评论 -
MapStruct系列(8)-映射器的高级用法
文章目录前言1. 默认值和常量2. 表达式3. 默认表达式4. 子类映射5. 指定结果类型6. 控制“null”参数的映射结果7. 条件映射8. 异常处理前言在之前的案例中,我们使用@Mapping指定映射关系,接下来深入了解下映射的其他高级用法。1. 默认值和常量如果源属性是null ,则可以使用Mapping.defaultValue设置默认值。也可以使用Mapping.constant来设置。默认值和常量被指定为字符串值。@Mapper(uses = StringListMapper.cla原创 2022-04-14 17:04:36 · 8038 阅读 · 0 评论 -
MapStruct系列(7)-对象工厂
文章目录前言1. 自定义对象工厂2. 具有更新方法的自定义对象工厂3. @ObjectFactory前言默认情况下,用于将类型映射到另一种类型时生成代码将调用默认构造函数来实例化目标类型。我们可以使用自定义对象工厂来获取目标类型实例。1. 自定义对象工厂自定义对象工厂,创建对象。public class EntityFactory { public <T extends BaseEntity> T createEntity(@TargetType Class<T&g原创 2022-04-14 15:07:41 · 1138 阅读 · 0 评论 -
MapStruct系列(6)-映射集合、映射Stream流、映射枚举
映射集合List Set集合类型(的映射List,Set等等)以相同的方式映射豆类型,即通过定义与在映射器接口所需的源和目标类型的映射方法进行。MapStruct 支持来自Java Collection Framework 的各种可迭代类型。生成的代码将包含一个循环,该循环遍历源集合,转换每个元素并将其放入目标集合。如果在给定的映射器或其使用的映射器中找到集合元素类型的映射方法,则调用此方法来执行元素转换。或者,如果存在源元素和目标元素类型的隐式转换,则将调用此转换例程。下面显示了一个示例:具有集合原创 2022-04-14 14:23:43 · 3244 阅读 · 0 评论 -
MapStruct系列(5)-映射器数据类型转换详解
数据类型转换源对象和目标对象中的映射属性并不总是具有相同的类型。例如,属性可能int属于源 bean 中的类型Long,但属于目标 bean 中的类型。MapStruct 如何处理此类数据类型转换的呢?1. 隐式类型转换在许多情况下,MapStruct 会自动处理类型转换。例如,如果源 bean 中一个属性类型为int,但在目标 bean 中属于String类型,则生成的代码将分别通过调用String#valueOf(int)和Integer#parseInt(String)透明地执行转换。目前支原创 2022-04-14 11:54:05 · 12043 阅读 · 0 评论 -
MapStruct系列(4)- 获取映射器实例的多种方式
文章目录前言1. 使用Mappers 工厂(无依赖注入)2. 使用依赖注入前言通过之前的学习,我们知道MapStruct 通过映射器接口,帮我们生成了实现类对象,那么怎么引入对象用呢?主要有以下几种方式:1. 使用Mappers 工厂(无依赖注入)当不使用 DI (依赖注入)框架时,可以通过org.mapstruct.factory.Mappers类检索 Mapper 实例。映射器接口中应定义一个名为INSTANCE的成员,该成员包含映射器类型的单个实例:@Mapperpublic inter原创 2022-04-13 15:15:50 · 3013 阅读 · 0 评论 -
MapStruct系列(3)-MapStruct之映射器详解
映射器上篇文档入门案例中,写了一个转换器接口,就可以实现对象转换,下面将参考官方文档,深入了解下。1. 基本映射器一个最简单的映射器结构如下:@Mapperpublic interface CarMapper { @Mapping(source = "numberOfSeats", target = "seatCount") CarDto carToCarDto(Car car);}@Mapper注解标识当前接口(也可以为抽象类)为映射器,MapStruct会根据接口描述原创 2022-04-13 14:49:02 · 4075 阅读 · 0 评论 -
MapStruct系列(2)-MapStruct简介及入门案例
对象转换在上篇文档中,参考阿里规范,在MVC三层架构中,涉及到了各种对象转换(比如DOT转VO),其中使用的是beanUtil工具类进行转换,但是这种转换存在问题,只能转换相同的字段,所有在实际开发中,有很多这种转换框架解决这类问题,这种框架一般都叫做Bean映射框架。框架或工具类说明commons包BeanUtilsspring beans下BeanUtilsDozerhttp://dozer.sourceforge.net/documentation/getti原创 2022-04-13 09:58:01 · 969 阅读 · 0 评论 -
MapStruct系列(1)- POJO/DO/DTO/BO/VO概念及应用案例分析
阿里规范首先看看阿里开发手册中关于POJO/DO/DTO/BO/VO的相关描述内容。一、 编程规约(一) 命名风格3 . 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。 正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion &nb原创 2021-05-31 15:04:06 · 2401 阅读 · 1 评论