SuperAPI AI 工具集

mapstruct-patterns

编程与开发

查看项目

更新于 10-15 21:48

技能介绍

用途:本技能整理 MapStruct 的最佳实践模式,帮助在 Java 项目中编写编译期生成、非反射的 Bean 映射代码,性能等同手写。

主要能力:Mapper 三种定义方式——接口(标准)、抽象类(需注入字段或自定义方法)、default 方法(自定义转换逻辑);Spring 注入策略——CONSTRUCTOR 推荐且测试友好,SETTER 用于解决循环依赖,可用 @MapperConfig 做全局默认配置;嵌套映射——显式子方法优于 dot notation 一次性配置,dot notation 可用于局部覆盖或常量覆盖;自定义限定——自定义 @Qualifier 注解优于 @Named 字符串引用;Lombok 集成——annotationProcessorPaths 中 Lombok 必须排在 MapStruct 之前;@MappingComposition 可用于组合注解,但错误信息尚不成熟需谨慎。

使用方式:在 Mapper 接口或抽象类上使用 @Mapper(componentModel = "spring", injectionStrategy = ...) 声明;通过子映射方法集中配置嵌套逻辑;用 qualifiedBy 引用自定义 @Qualifier;循环依赖场景将两侧 Mapper 均改为 SETTER 注入并互相 uses。

限制:MapStruct 为编译期生成,不做运行时动态反射映射(Orika/Dozer 属范围外);CONSTRUCTOR 注入遇循环依赖会编译失败;Lombok 处理器顺序错误会导致找不到 getter/setter;CollectionMappingStrategy.DEFAULT 不应显式使用;本技能不收集、存储或传输任何用户数据。具体版本与价格信息暂未提供。