MapStruct-plus cannot find converter from

正怒月神發表於2024-08-20

廢話不多,直接上

1 錯誤:

cannot find converter from

2 描述我的情況

我的專案分為2塊,一塊是介面,一塊是實現

API介面(kintech-api-bo):

其中dto,req,res包含了@AutoMapper

實現(kintech-bo):

3 問題

當我的其他模組(kintech-crm),引用了kintech-api-bo時,

呼叫如下語句就會報錯(cannot find converter from):

Req a = MapstructUtils.convert(dto,Req.class);

4 原因

歸根結底,是由於掃描包的路徑不一樣 。

kintech-crm的掃描路徑是:com.kintech.crm。

而api模組的路徑是:com.kintech.bo。

這才導致沒有掃描到。

5 解決方案

目前我想到的3個

① 由於我的模組名稱高度相似,所以每個模組的啟動項Application從原來的com.kintech.xxx,移到com.kintech下,這樣啟動Application時,會從com.kintech開始掃描。

② Application上註解改為

@SpringBootApplication(scanBasePackages = {"com.helka"})
③ 直接呼叫mapstruct生成的方法

aDtoTobReqMapper.convert(aDto,bReq);

相關文章