1、MapStruct的應用


項目之中的實體對象超多,DTO、VO、DO等等,都需要涉及到屬性之間的映射。此項工作的邏輯性不是很復雜,但是非常的繁瑣,最好需要一個框架結構來做此件事情。根據java的特性,解決方案大概有兩種:

1、通過java自身的反射,反射確實方便,但是運行時執行,消耗性能。

2、框架自身最好能自動生成代碼,編譯執行,並且可以檢查到屬性名稱的變化帶來的編譯錯誤。

鑒於以上兩點,我們選擇了MapStruct,此框架具有以下的優點:

  1. 注解處理器
  2. 可以生成 JavaBean 之間那的映射代碼
  3. 類型安全, 高性能, 無依賴性

入門如下:

1、引入依賴

<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
---注解分析器
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version> <!-- or newer version -->
<configuration>
<source>1.8</source> <!-- depending on your project -->
<target>1.8</target> <!-- depending on your project -->
<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.16.18</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>

2、插件工具
mapstruct的插件可以自動檢查到屬性字段的更改,並且提供屬性靈活的選擇。(我下載了插件不好使)
idea通過插件市場下載即可。

 

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM