Mapstruct使用之问题

Mapstruct使用之问题

今天第一次在项目中使用Mapstruct,一切正常,本地服务一切ok;
但是部署到tomcat中产生了问题:一直报错找不到org.mapstruct.factory.Mappers类,详见下图

在这里插入图片描述
在这里插入图片描述

根据错误是没有讲Mappers加载进容器导致的,查看源码发现Mappers.getMapper方法只是对你当前类进行了实例化,故换个思路

在这里插入图片描述

@Mapper注解已经将当前类注入了spring容器中,故直接注入api层进行调用

在这里插入图片描述

调用成功

在这里插入图片描述

Spring Boot是一个用于创建基于Java的应用程序的框架,MapStruct是一个Java注解处理器,可以用来简化Java Bean之间的映射。在Spring Boot中使用MapStruct可以帮助我们快速、方便地进行对象之间的转换。 首先,我们需要在pom.xml文件中添加MapStruct的依赖: ```xml <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.4.2.Final</version> </dependency> ``` 然后,在我们的转换类中,我们需要使用@Mapper注解来标记它为一个MapStruct映射器接口。接着,我们可以定义转换方法,使用@Mapping注解来指定属性的映射关系。例如,如果我们有一个Person类和一个PersonDto类,我们可以定义以下转换方法: ```java @Mapper public interface PersonConverter { PersonConverter INSTANCE = Mappers.getMapper(PersonConverter.class); @Mapping(source = "address", target = "addr") PersonDto personToPersonDto(Person person); @Mapping(source = "addr", target = "address") Person personDtoToPerson(PersonDto personDto); // 其他转换方法... } ``` 上述代码中,我们使用@Mapping注解来指定address属性和addr属性之间的映射关系。通过这样的方式,我们就可以在Spring Boot应用程序中方便地进行对象之间的转换了。 请注意,为了使MapStruct生效,我们需要确保在编译期间生成的映射器实现类已经正确地生成。如果你遇到了问题,可以尝试在IDE中运行"clean install"命令来重新生成映射器实现类。 以此为基础,你可以根据自己的需求定义更多的转换方法,以及处理集合类型的转换。使用MapStruct可以大大简化对象之间的映射工作,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值