我使用带下面依赖项的mapstruct:
<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.3.0.Final</version> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>1.3.0.Final</version> <scope>provided</scope> </dependency>
然后,我有一个包含基本 @Named 方法的接口:
@Named
public interface CommonConverter { @Named("formatDateString") default String formatDateString(Date date){ if(date == null){ return null; return DateUtils.formatDateString(date); @Named("formatStringDate") default Date formatStringDate(String dateStr){ if(StringUtils.isEmpty(dateStr)){ return null; return DateUtils.formatStringDate(dateStr); @Named("convertTimestampToString") default String convertTimestampToString(Long date) { if (date == null || date.equals(0L)){ return StringUtils.EMPTY; return DateUtils.convertTimeToDateStr(date, 0); }
现在我有了另一个mapstruct转换器,它扩展了 CommonConverter
CommonConverter
@Mapper(componentModel = "spring") public interface EmployeeEventConverter extends CommonConverter{ @Mappings({ @Mapping(source = "claimDate", target = "claimDate", qualifiedByName = "formatDateString"), @Mapping(source = "eventStartDate", target = "eventStartDate", qualifiedByName = "formatDateString"), //@Mapping(source = "target", target = "targetAsString", qualifiedByName = "formatTargetString"),