在軟體架構中,分層式結構是最常見,各層之間有其獨立且隔離的業務邏輯,也因而各層有自己的輸入輸出物件,也就是程式碼中見到各種物件,如DO(Data Object)、DTO、Domain Entity(領域實體),這些資料物件之間通常都有很多相同或相近的屬性物件,資料在傳輸的過程中從一個物件到另一個物件,就通常需要賦值,從最初的的getter/setter到後來的BeanUtils(減少了setter的程式碼量),再到現在的MapStruct。
目前的轉換器有很多種,根據網上的效能壓測資料來看,JMapper 和 MapStruct 的效能最好;根據易用性來講 MapStruct 最好,所以我們就使用 MapStruct 來實現轉換器。
專欄大綱
在軟體架構中,分層架構是最常見,各層之間有其獨立且隔離的業務邏輯,也因而各層有自己的輸入輸出物件,也就是程式碼中見到各種物件,如DO(Data Object)、DTO、Domain Entity(領域實體),這些資料物件之間通常都有很多相同或相近的屬性物件,資料在傳輸的過程中從一個物件到另一個物件,就通常需要賦值,從最初的的getter/setter到後來的BeanUtils(減少了setter的程式碼量),再到現在的MapStruct。
手寫轉換器帶來的人工成本較高,尤其是當轉換物件屬性較多,或者有巢狀屬性時,費時費力,且容易遺漏出錯,而且隨著物件的迭代,轉換器中的程式碼也要變動,所以通常我們還是會採用自動化的轉換器。
在自動化的轉換器中,從效能和易用性來說,MapStruct都是其中的佼佼者。本技術專欄將詳細介紹Java 實體對映工具 MapStruct的使用。
主要包含如下內容:
-
Java 實體對映工具 MapStruct概覽和環境設定
-
Java 實體對映工具 MapStruct-基本對映快速入門
-
在Intellij IDEA中體驗MapStruct Support外掛
-
Java 實體對映工具 MapStruct-定製對映
-
Java 實體對映工具 MapStruct-對映多個物件
-
Java 實體對映工具 MapStruct-對映巢狀物件
-
Java 實體對映工具 MapStruct-List的轉換
-
Java實體對映工具MapStruct-封裝BaseMapper介面
-
為什麼實體對映工具MapStruct 的效率比較高?
-
資料型別轉換(numberFormat、dateFormat、expression)
-
Java實體對映工具MapStruct和Lombok開發利器結合使用
-
MapStruct使用Java表示式進行對映
-
MapStruct屬性對映設定常量、預設值或預設表示式
-
Java實體對映工具MapStruct-集合對映Map和Set