MapStruct Plus 是 MapStruct 的增强工具,在 Mapstruct 的基础上,实现了自动生成 Mapper 接口的功能,并强化了部分功能,使 Java 类型转换更加便捷、优雅。
MapStructPlus官网
更新日志
-
兼容内部类转换
示例:
@Data @AutoMapper(target = Car.InnerClass.class) public class InnerClassTarget { private String f; } @Data public class Car { @Data public static class InnerClass { private String f; } } @Test public void innerClassTest() { Car.InnerClass innerClass = new Car.InnerClass(); innerClass.setF("1111"); InnerClassTarget innerClassTarget = converter.convert(innerClass, InnerClassTarget.class); Assert.equals(innerClassTarget.getF(), "1111"); System.out.println(innerClassTarget); Car.InnerClass innerClass1 = converter.convert(innerClassTarget, Car.InnerClass.class); Assert.equals(innerClass1.getF(), "1111"); System.out.println(innerClass1); }
-
feature : AutoMapping 注解中的 targetClass 支持配置父类
AutoMapping
注解中的targetClass
支持配置父类,当目标类是该配置的子类时,即可应用该规则。 -
issue#I8T7EF : 支持在父类中配置的 AutoMapping 注解
之前的版本中,在父类中配置的 AutoMapping 注解,并不会生效,在该版本中,解决了这个问题。
示例:
-
PDto
@Data public class PDto { @AutoMapping(targetClass = PVO.class, expression = "java(source.getSuccess() ? 1 : 0)") private Boolean success; }
-
PVO
@Data public class PVO { @AutoMapping(targetClass = PDto.class, expression = "java(source.getSuccess().equals(1) ? true : false)") private Integer success; }
-
SDto
@Data @ToString(callSuper = true) @AutoMapper(target = SVO.class) public class SDto extends PDto { private Long id; }
-
SVO
@Data @ToString(callSuper = true) @AutoMapper(target = SDto.class) public class SVO extends PVO { private Long id; }
-
测试
@Test public void extendTest() { SDto sDto = new SDto(); sDto.setId(111111L); sDto.setSuccess(true); SVO svo = converter.convert(sDto, SVO.class); Assert.equals(svo.getId(), sDto.getId()); Assert.equals(svo.getSuccess(), 1); System.out.println(svo); SDto sDto1 = converter.convert(svo, SDto.class); Assert.equals(sDto1.getId(), sDto.getId()); Assert.equals(sDto1.getSuccess(), sDto.getSuccess()); System.out.println(sDto1); }
-
-
issue#I8QPRO : 框架自动生成的 AutoMapperConfig 和 AutoMapMapper 包和类名支持配置
增加了三个配置项,支持注解配置和启动参数配置:
-
autoConfigPackage
:MapStructPlus 框架自动生成的配置类 ---AutoMapperConfig
/AutoMapMapperConfig
所在的包路径 -
autoMapperConfigClassName
:MapStructPlus 框架自动生成的的配置类(配置对象之间的转换)类名 -
autoMapMapperConfigClassName
:MapStructPlus 框架自动生成的配置类(配置Map与对象之间的转换)类名
详情可以参考MapStructPlus - 指南 - 配置项
-