MapStruct 添加 Maven 依赖

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 72w+ 字,讲解图 3103+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2400+ 小伙伴加入学习 ,欢迎点击围观

要想在项目中使用 MapStruct,首先,需要在 Maven 项目中添加 MapStruct 依赖。

1. 添加核心依赖

将 MapStruct 核心库添加到项目的 pom.xml 文件中。下面是 MapStruct 核心依赖的示例:

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.5.5.Final</version> <!-- 使用时请检查最新版本 -->
</dependency>

提示:你可以访问 MapStruct 的官方页面 以获取最新的依赖版本。

2. 添加编译器插件

除了核心库,还需要添加 MapStruct 的编译器插件。这是因为 MapStruct 在编译时生成映射代码。为此,我们需要在 pom.xml 中的 <build> 部分添加以下插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version> <!-- 使用时请检查最新版本 -->
            <configuration>
                <source>1.8</source> <!-- 根据你的 JDK 版本进行调整 -->
                <target>1.8</target> <!-- 根据你的 JDK 版本进行调整 -->
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.5.5.Final</version> <!-- 使用时请检查最新版本 -->
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

这里,我们添加了 maven-compiler-plugin 插件并为其配置了 MapStruct 的注解处理器 mapstruct-processor。这确保在编译项目时,MapStruct 会生成必要的映射实现代码。

3. 校验配置

为确保一切都正确配置,可以尝试编写一个简单的 MapStruct 接口并编译项目。如果项目成功编译,并且在 target/generated-sources 目录下生成了相应的映射实现类,那么配置应该就没问题。

@Mapper
public interface CarMapper {
    CarMapper INSTANCE = Mappers.getMapper(CarMapper.class);

    CarDto carToCarDto(Car car);
}

编译后,应该可以在上述目录下看到一个名为 CarMapperImpl 的类。

总结

MapStruct 是一个功能强大的对象映射工具,它通过在编译时自动生成代码来实现映射,从而避免了运行时的性能开销。通过正确配置 Maven 依赖和插件,我们可以轻松地在项目中集成 MapStruct 并开始使用其强大的功能。