MapStruct-plus cannot find converter from

 

废话不多,直接上

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);

 

posted @ 2024-08-20 17:59  正怒月神  阅读(187)  评论(0编辑  收藏  举报