廢話不多,直接上
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);