| home | true | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| modules |
|
||||||||||||||||||||||||||||||||||||||||||
| bannerBrand |
|
||||||||||||||||||||||||||||||||||||||||||
| isShowTitleInHome | true | ||||||||||||||||||||||||||||||||||||||||||
| actionText | About | ||||||||||||||||||||||||||||||||||||||||||
| actionLink | /views/other/about | ||||||||||||||||||||||||||||||||||||||||||
| features |
|
||||||||||||||||||||||||||||||||||||||||||
| footer |
|
- maven
<dependency>
<groupId>io.github.linpeilie</groupId>
<artifactId>mapstruct-plus-spring-boot-starter</artifactId>
<version>1.5.3</version>
</dependency>- gradle
implementation group: 'io.github.linpeilie', name: 'mapstruct-plus-spring-boot-starter', version: '1.5.3'- pr178 : Breaking Change:重做 Spring 环境下转换器的注册方式——不再依赖应用的包扫描(
@ComponentScan),改由框架在编译期自动记录、启动时自动注册,mapper 所在包是否被扫描覆盖不再有影响;- 升级注意:所有使用 mapstruct-plus 的模块必须统一升级到 1.5.3 并重新构建,旧版本编译产出的转换器将无法被注册;
- 配置类中通过
@ConditionalOnBean(XxxMapper.class)判断转换器是否存在的写法不再生效,需改用@ConditionalOnClass等条件; - 使用 shade 等方式合并打包、或非 Spring Boot 的纯 Spring 应用,需要少量额外配置,详见 类库 / Starter 集成指南;
- 基于 mapstruct-plus 开发的类库 / starter 现在开箱即用:其内置转换器在任何消费应用中都能正确注册,彻底解决因包扫描范围未覆盖、运行期才报"找不到转换器"的问题;
- 支持嵌套类(内部类)作为映射对象;
- 纯 Java 方式(非 Spring)使用时启动更快,并修复了应用打成 Spring Boot fat jar 后部分转换器找不到的问题;
- 健壮性增强:个别转换器注册信息异常时仅告警跳过,不影响应用正常启动;
- 将
MapObjectConvert静态工具类重构为MapObjectConverter接口 +HutoolMapObjectConverter默认实现,使类型转换器可自定义; @AutoMapMapper新增use属性,支持类级指定转换器实现;@MapperConfig新增mapObjectConverter属性,支持全局配置转换器实现;- 新增编译参数
-Amapstruct.plus.mapObjectConverter等价入口; - Breaking Change:删除
MapObjectConvert类,迁移方式MapObjectConverter.getInstance(HutoolMapObjectConverter.class).objToString(value)。
- fix #172 : 修复 record 中配置
@AutoMapping、@ReverseAutoMapping时,重复生成相同目标属性映射导致 MapStruct 编译失败的问题;
- 升级 MapStruct 版本为 1.6.3
- 升级注意事项:MapStruct 1.6 增加了一个 Breaking Changes,升级后可能会导致有不兼容,详情可见 MapStruct 升级日志
在 MapStruct 1.6 中,增加了对源参数(source parameters)进行存在性检查的支持。 这意味着,即使你只想直接将一个源参数映射到某个目标属性,也需要使用新的注解
@SourceParameterCondition或@Condition(appliesTo = ConditionStrategy.SOURCE_PARAMETERS)来定义存在性检查方法。
- 升级注意事项:MapStruct 1.6 增加了一个 Breaking Changes,升级后可能会导致有不兼容,详情可见 MapStruct 升级日志
- Converter 支持 Consumer 函数接口
- pr133 : AutoMapper、AutoMapping、ReverseAutoMapping 支持重复配置
- pr141 : MapperConfig 添加 uses 属性以配置全局共享的自定义转换类
- 修复在 Vscode 软件中,默认使用 Eclipse jdt.core 环境下,生成的转换实现类冲突的问题;
- 重新打包 javapoet,防止与其他项目冲突;
- 升级
spring-boot-autoconfigure版本号2.7.9--->2.7.18
- 修改
SpringContextUtils类名,防止与其他项目类名冲突; - fix #108 : SpringContextUtils#getBeanFactory 方法改为静态;
- pr : 增加注解批量增加
AutoMapping、AutoMappings、ReverseAutoMapping、ReverseAutoMappings特性;
……
- 贡献代码:欢迎提交 Issue 或 Pull Requests
- 维护文档:项目目录下的 docs 目录,欢迎参与翻译与修订