簡介
??????MapStruct是滿足JSR269規(guī)范的一個(gè)Java注解處理器躁劣,用于為Java Bean生成類型安全且高性能的映射株婴。它基于編譯階段生成get/set代碼沐绒,此實(shí)現(xiàn)過程中沒有反射,不會(huì)造成額外的性能損失列吼。
??????您所要做的就是定義一個(gè)mapper接口(@Mapper)乎芳,該接口用于聲明所有必須的映射方法遵蚜。在編譯期間MapStruct會(huì)為該接口自動(dòng)生成實(shí)現(xiàn)類。該實(shí)現(xiàn)類使用簡單的Java方法調(diào)用來映射source-target對象奈惑,在此過程中沒有反射或類似的行為發(fā)生吭净。
優(yōu)點(diǎn)
- 與手工編寫映射代碼相比:
MapStruct通過生成冗長且容易出錯(cuò)的代碼來節(jié)省時(shí)間。 - 與動(dòng)態(tài)映射框架相比:
效率更高:使用簡單的Java方法調(diào)用代替反射肴甸;
編譯時(shí)類型安全:只能映射相同名稱或帶映射標(biāo)記的屬性寂殉;
編譯時(shí)產(chǎn)生錯(cuò)誤報(bào)告:如果映射不完整(存在未被映射的目標(biāo)屬性)或映射不正確(找
不到合適的映射方法或類型轉(zhuǎn)換)則會(huì)在編譯時(shí)拋出異常。