<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><annotationProcessorPaths><path><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version></path><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version></path><!-- This is needed when using Lombok 1.18.16 and above --><path><groupId>org.projectlombok</groupId><artifactId>lombok-mapstruct-binding</artifactId><version>0.2.0</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Person {private String username;private String address;private int age;private String idCard;private String email;}@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class PersonDto {private String username;private String address;private int age;private String identityCard;private String email;}
寫一個 Mapper 接口 PersonConverter是單實體映射方法
若源對象屬性與目標對象屬性名字一致,會自動映射對應屬性,不一樣的需要指定,也可以用 format 轉成自己想要的類型,也支持表達式的方式,可以看到像 name、email等這些名詞一致的我并沒有指定 source-target,而idCard指定了。