Я предлагаю использовать mapstruct как маппер, вот пример:
1) Добавление зависимостей и плагина к вашей помпе: -> плагин:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Final</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<configuration>
<defaultOutputDirectory>
${project.build.directory}/generated-sources
</defaultOutputDirectory>
<processors>
<processor>org.mapstruct.ap.MappingProcessor</processor>
</processors>
</configuration>
<executions>
<execution>
<id>process</id>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.0.0.Final</version>
</dependency>
</dependencies>
</plugin>
</plugins>
---> Зависимости:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.1.0.Final</version>
</dependency>
---> Пример Pojo:
public class TestPojo{
private String test1;
private String test2;
//getter and setter ....
}
-> создать свой собственный универсальный интерфейс отображения:
public interface PojoMapper<D,P>{
P toPojo(D paramterfromRequest);
}
---> Создатьреализация универсального интерфейса:
@Mapper
public interface PojoMapper extends PojoMapper<RequestObject, TestPojo>{
@Override
default TestPojo toPojo(RequestObject requestObject){
if(requestObject == null)
return null;
else {
TestPojo test = new TestPojo();
requestObject.getStringTarget() == null ? test.settest1("") : test.settest1(requestObject.getStringTarget());
requestObject.getStringTarget2() == null ? test.settest2("") : test.settest2(requestObject.getStringTarget2());
return test;
}
}
}
надеюсь, что это может быть полезно для вас или любого другого:)