一文搞懂Lombok Plugins使用与原理

在这里插入图片描述

目录

一文搞懂Lombok使用与原理

  • 1.前言
  • 2.什么是Lombok
  • 3. IntelliJ安装Lombok
    • 3.1通过IntelliJ的插件中心安装
    • 3.2在项目中使用Lombok Plugins
  • 4.Lombok 注解大全说明
    • 4.1POJO类常用注解
    • 4.2其他注解
  • 5.Lombok常见问题
  • 6.总结
  • 7.参考


文章所属专区 超链接


1.前言

2.什么是Lombok

Lombok是一款强大的Java工具,主要用于简化Java开发过程,尤其是对于简单的Java对象(POJO)。它通过注解的方式,帮助开发者消除Java的冗长代码,如getter、setter、equals、hashCode等方法,从而大大提高开发效率

3. IntelliJ安装Lombok

需要注意的是:IDEA 2020.3版本内置了lombok插件,所以无需在IntelliJ额外安装了,可能会出现其他问题!!!

3.1通过IntelliJ的插件中心安装

setting->Plugins->搜索Lombok Plugins 安装,重启即可
在这里插入图片描述

3.2在项目中使用Lombok Plugins

在maven中,在相关pom文件直接加入依赖

<dependency>     
	<groupId>org.projectlombok</groupId>     
	<artifactId>lombok</artifactId>     
	<version>1.16.8</version> 
</dependency>

4.Lombok 注解大全说明

4.1POJO类常用注解

@Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCod- e、@Getter、@Setter 和@RequiredArgsConstrutor 这些注解,对于 POJO 类十分有用
@ToString :这个注解可以使类自动覆写 toString 方法。在使用时,你可以添加其他参数,例如 @ToString(exclude=”id”) 表示排除id属性,或者 @ToString(callSuper=true, includeFieldNames=true) 表示调用父类的 toString 方法,包含所有属性。
@Getter/@Setter:这两个注解可以为属性生成 getter 和 setter 方法。在使用时,你可以选择访问范围,比如是否公开所有属性,或者只对某些属性进行getter和setter。
@NonNull:这个注解可以用于方法参数,它会在方法内部对参数进行非空判断,如果参数为空,则会抛出 NullPointerException。
@Cleanup: 这个注解可以用于局部变量,它会在变量离开作用域前自动清理资源。
@EqualsAndHashCode:这个注解可以使类自动生成 equals 方法和 hashCode 方法。在使用时,你可以选择是否覆盖父类的 equals 和 hashCode 方法,以及是否包含哪些属性。
@Builder:对于加了@Builder注解的方法,可以知道,编译后这个类多了一个builder()方法,以及一个静态内部类。通过这个注解可以在类上创建一个对象,并且可以链式的进行赋值。

import lombok.Builder;
import lombok.ToString;

@Builder
@ToString
public class User {
    private String name;
    private int age;
    private String email;
}

ser user = User.builder()
                    .name("Tom")
                    .age(25)
                    .email("tom@example.com")
                    .build();

4.2其他注解

@NoArgsConstructor:这个注解用于在类上,这个注解可以生成无参构造方法。使用方法是在类上直接使用该注解即可。示例如下:
@RequiredArgsConstructor:这个注解同样用于在类上,但是它要求所有的构造方法参数都必须被标注。使用方法是在类上直接使用该注解即可。
@AllArgsConstructor:这个注解也用于在类上,与@RequiredArgsConstructor类似,但是它要求所有的构造方法参数都必须被标注,包括那些没有在类中声明的参数。示例如下:
@Value:用在类上,是@Data 的不可变形式,相当于为属性添加 final 声明,只提供 getter 方法,而不提供 setter 方法
@SneakyThrows:自动抛受检异常,而无需显式在方法上使用 throws 语句
@Log:根据不同的注解生成不同类型的 log 对象,但是实例名称都是 log,有六种可选实现类
@CommonsLog Creates log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Log Creates log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j Creates log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2 Creates log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j Creates log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j Creates log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

5.Lombok常见问题

Lombok常见问题
最全一篇Lombok使用讲解,及原理,真香啊
java lombok注解字段默认值 lombok常用注解

6.总结

Lombok是一款Java开发插件,它提供了一系列的注解,这些注解可以帮助开发者消除Java开发中的冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。

7.参考

十分钟搞懂Lombok使用与原理
最全一篇Lombok使用讲解,及原理,真香啊
java lombok注解字段默认值 lombok常用注解

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/234345.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPS宏批量修改图片尺寸

致谢 感谢网络各位大佬的分享&#xff0c;可以让我快速的学习这块内容。 JS宏代码

上班必备——项目部署环境

大家都知道&#xff0c;互联网行业有很多的岗位&#xff0c;前端&#xff0c;后端&#xff0c;产品&#xff0c;测试&#xff0c;ui等。 ui&#xff0c;产品和测试的同事在前端开发的过程中&#xff0c;都会时刻关注着进度&#xff0c;是要看页面效果的&#xff0c;这个时候怎…

MIT线性代数笔记-第28讲-正定矩阵,最小值

目录 28.正定矩阵&#xff0c;最小值打赏 28.正定矩阵&#xff0c;最小值 首先正定矩阵是一个实对称矩阵 由第 26 26 26讲的末尾可知正定矩阵有以下四种判定条件&#xff1a; 所有特征值都为正左上角所有 k k k阶子矩阵行列式都为正&#xff08; 1 ≤ k ≤ n 1 \le k \le n …

SpringBoot默认使用CGLIB的原因

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

基于ssm农产品仓库管理系统系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本农产品仓库管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信…

springboot084基于springboot的论坛网站

springboot084基于springboot的论坛网站 源码获取&#xff1a; https://docs.qq.com/doc/DUXdsVlhIdVlsemdX

回味童年经典游戏的项目

目录 1.超级玛丽2.坦克大战3.吃豆人游戏4.贪吃蛇游戏 1.超级玛丽 项目地址&#xff1a;超级马里奥游戏源码 在线试玩网址在资源描述中 在线试玩&#xff1a;http://martindrapeau.github.io/backbone-game-engine/super-mario-bros/index.html 主要语言&#xff1a;JavaScript…

列表标签的介绍与使用

列表的作用&#xff1a; 整齐、整洁、有序&#xff0c;它作为布局会更加自由和方便。 根据使用情景不同&#xff0c;列表可以分为三大类&#xff1a;无序列表、有序列表和自定义列表 无序列表 <ul> 标签表示 HTML 页面中项目的无序列表&#xff0c;一般会以项目符号呈…

C++设计模式——Adapter(适配器)模式

一、Adapter模式是个啥&#xff1f; 适配器模式在软件开发的江湖里&#xff0c;可以说用途是非常广的。下面几个经典的场景来说明适配器模式的使用。 场景一 场景二 假如你正在开发一款股票市场监测程序&#xff0c; 它会从不同来源下载 XML 格式的股票数据&#xff0c; 然后…

力扣每日一题day33[111. 二叉树的最小深度]

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;2示例 2&#xff1a; 输入…

传感器(一) :IMU / 陀螺仪模块

IMU / 陀螺仪模块 一、概述二、注意参数2.1 陀螺仪芯片标准&#xff08;MPU6050)2.2 参数说明 三、IMU模式使用注意事项3.1 IMU模块安装注意事项3.2 为什么IMU要安装在机器中心位置 四、常见陀螺仪芯片品牌 一、概述 IMU全称为惯性测量单元&#xff0c;可以通过测量物体在三维空…

SpringSecurity6 | 登陆后的跳转

SpringSecurity6 | 自定义认证规则 ✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Ja…

HTML5+CSS3小实例:3D翻转Tab选项卡切换特效

实例:3D翻转Tab选项卡切换特效 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=…

JavaScript基础知识整理(最全知识点, 精简版,0基础版)

文章目录 一、输入和输出内容 1.1 输出 1.1.1 在浏览器的控制台输出打印 1.1.2 直接在浏览器的页面上输出内容 1.1.3 页面弹出警告对话框 1.2 输入 二、变量 2.1 变量是什么 2.2 变量的声明和赋值 2.3 变量的命名规范和规范 三、变量扩展&#xff08;数组&#xff09; 3.1 数组…

MyBatis 四大核心组件之 ParameterHandler 源码解析

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

【S32K3环境搭建】-0.4-使用SEGGER J-Link烧录调试程序

【S32K3_MCAL从入门到精通】合集&#xff1a; S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 导入一个编译没有报错的S32K312工程。接着在菜单栏中&#xff0c;依次选择Debug下拉箭头 -- > Debug Configuration&#xff1b; 在弹出的Create…

Xcode doesn’t support iOS 16.6

xocde版本低&#xff0c;手动放入16.6的依赖文件 https://gitee.com/qiu1993/iOSDeviceSupport/blob/master/iOS16/16.6.zip 路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

最新国内可用GPT4,Midjourney绘画网站+使用教程

一、前言 ChatGPT GPT4.0&#xff0c;Midjourney绘画&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而&#xff0c;GPT-4对普…

漏洞复现-用友NC任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

基于ssm端游账号销售管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对端游账号销售信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…