作用
在接口上使用该注解,可以自动生成该接口的实现类. 实现DTO-DO各种模型之间的字段映射(不仅仅限制于DTO-DO)
1.引入pom文件
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
2.类上面加注解
@Mapper(componentModel = "spring")
public interface TestConverter {
CheckInRequest converterRequest(CheckInReq req);
}
3.编译即可生成实现类.build该注解所在的类,或者install该项目.
4.效果
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2022-09-14T11:06:46+0800",
comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_131 (Oracle Corporation)"
)
@Component
public class TestConverterImpl implements TestConverter {
@Override
public CheckInRequestt converterRequest(CheckInReq req) {
if ( req == null ) {
return null;
}
CheckInRequestt checkInRequest = new CheckInRequest();
checkInRequest.setTrackingId( req.getTrackingId() );
checkInRequest.setHotelId( req.getHotelId() );
checkInRequest.setRoomNo( req.getRoomNo() );
checkInRequest.setFloor( req.getFloor() );
checkInRequest.setBuilding( req.getBuilding() );
checkInRequest.setDtIn( req.getDtIn() );
checkInRequest.setDtOut( req.getDtOut() );
checkInRequest.setCheckInInfos( checkInInfoReqListToCheckInInfoList( req.getCheckInInfos() ) );
return checkInRequest;
}
}