当前位置: 首页 > article >正文

MybatisPlus--Lombok的使用

文章目录

  • Lombok简介
  • 使用方法
  • 相关注解
    • @Getter and @Setter
    • @ToString
    • @Data
    • @NoArgsConstructor
    • @AllArgsConstructor


Lombok简介

Lombok 是一个用于简化 Java 开发的库,通过注解帮助开发者减少样板代码(如 getter、setter、构造方法等)的书写。它在编译时通过注解处理器自动生成所需的代码,从而使代码更加简洁和易于维护。

使用方法

1.在idea中添加Lombok插件

image-20250115135553993

2.引入jar包

		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

相关注解

官方注解的介绍:https://projectlombok.org/features/all

@Getter and @Setter

你可以用@Getter / @Setter注释任何字段(当然也可以注释到类上的),让lombok自动生成默认的getter / setter方法,生成的getter遵循布尔属性的约定。
默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)

放到字段上的注解示例:

image-20250115140813163

放到类上的注解示例:

image-20250115141238472

@ToString

生成toString()方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。

  • 可以这样设置不包含哪些字段,例如:@ToString(exclude = “id”)@ToString(exclude = {“id”,“name”})
  • 如果继承的有父类的话,可以设置callSuper 让其调用父类的toString()方法,例如:@ToString(callSuper = true)
  • 如果需要可以通过注释参数includeFieldNames来控制输出中是否包含的属性名称。,例如:@ToString(includeFieldNames= false)

image-20250115154215851

上面添加的注解映射到代码中为:

@Override
    public String toString() {
        return "MyUser{" +
                "uid=" + uid +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }

@Data

该注解使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。

虽然@Data注解非常有用,但是它没有与其他注解相同的控制粒度。@Data提供了一个可以生成静态工厂的单一参数,将staticConstructor参数设置为所需要的名称,Lombok自动生成的构造函数设置为私有,并提供公开的给定名称的静态工厂方法。

image-20250115154437329

@NoArgsConstructor

@NoArgsConstructor 是 Lombok 提供的注解,用于为类生成一个无参构造器。

image-20250115154641597

@AllArgsConstructor

@AllArgsConstructor 生成一个全参数的构造方法,默认不提供无参构造。

image-20250115154745354


http://www.kler.cn/a/505489.html

相关文章:

  • 解决 Mac 系统上的 node-sass 问题
  • java.net.SocketException: Connection reset 异常原因分析和解决方法
  • docker swarm 部署问题 和 指定节点部署服务
  • 编译pytorch——cuda-toolkit-nvcc
  • Python调用go语言编译的库
  • JavaScript系列(28)--模块化开发详解
  • Cyberchef开发operation操作之-node开发环境搭建
  • 【PCIe 总线及设备入门学习专栏 5.3.1 -- PCIe PHY firmware load | trainning | link up 区别与联系】
  • CES 2025:科技热点与趋势深度剖析
  • JMeter下载与使用,新手详细
  • 【Uniapp-Vue3】showLoading加载和showModal模态框示例
  • Git | git revert命令详解
  • ubuntu各分区的用途
  • 使用virsh-console连接虚拟机报连接到域一直卡着
  • Java基于SSM框架的在线视频教育系统小程序【附源码、文档】
  • 环境部署——minio部署
  • STM32F1——CAN驱动代码
  • 【QT】如何在遍历QTreeWidgetItem的子项过程中正确删除子项
  • 电动汽车V2G技术Matlab/Simulink仿真模型
  • 为什么Hugging Face下载的模型中没有tokenizer.model文件?
  • 【Go】:深入解析 Go 1.24:新特性、改进与最佳实践
  • 使用 TiDB 的几个优秀 Tips
  • 【2024年华为OD机试】(C卷,100分)- 字符串筛选排序 (Java JS PythonC/C++)
  • 网络分析仪测试S参数
  • 网络协议基础--协议分层
  • Java学习教程,从入门到精通,JDBC驱动程序类型及语法知识点(91)