当 Lombok 遇见了 MapStruct の「坑」

本文讲述了在Java开发中,当Lombok与MapStruct结合使用时遇到的编译错误,以及如何通过理解两者的工作原理,调整pom.xml配置来解决编译问题,确保Lombok的注解生效。
摘要由CSDN通过智能技术生成

前言

2021 年了,相信搞 Java 的小伙伴们不会还没有人没用过 Lombok 吧?【资料获取】
在这里插入图片描述

Lombok 是一款通过「 注解 」的形式简化并消除冗余代码的 Java 插件,利用「 Annotation Processor 」原理,在编译时生成一些「重复」代码。另外需要注意的是,在 IDEA 环境下,需要额外安装一个 Lombok 插件。(本文不会专门介绍 Lombok 的使用方法,想要深入学习的小伙伴可以去官方文档 学习 Lombok 提供的所有注解的使用方法。)

可能一些朋友对 MapStruct 就有点陌生了,但是我敢肯定的是,你们一定用过和他功能类似的工具。比如 Apache Commons BeanUtils、Spring BeanUtils、BeanCopier、Dozer 等等。没错,MapStruct 也是为了解决对象属性拷贝这一个通用需求的。传统使用「 反射 」进行属性拷贝的方式,在大数据量的场景下,性能低下,效率堪忧。MapStruct 底层则是通过 getter/setter 的方式提升属性拷贝的性能的,跟 Lombok 一样利用「 Annotation Processor 」的原理,在编译时生成代码。

踩坑

首先我们按照 MapStruct 官方文档介绍,搭一个简单的栗子🌰~【资料获取】

引入依赖:

<properties>
    <mapstruct.version>1.4.2.Final</mapstruct.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>${
   mapstruct.version}</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessorPaths>
                    <!-- MapStruct 在编译时会通过这个插件生成代码 -->
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${
   mapstruct.version}</version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值