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

JavaEE:Lombok工具包的使用以及EditStarter插件的安装

Lombok是一个Java工具库,通过添加注解的方式,简化Java的开发。

目录

1、引入依赖

2、使用

3、原理解释

4、更多使用

5、更快捷的引入依赖


1、引入依赖

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

2、使用

        Lombok通过一些注解的方式,可以帮助我们消灭一些代码,使代码看起来更简洁。使用 @Data 注解,会帮助我们自动生成一些方法,包含 getter/setter/toString 等……

例如:

import lombok.Data;@Data
public class Test{private String str1;private String str2;private String str3;
}

        这边的Test对象在加上 @Data 注解后,在没有添加getter/setter等方法的前提下,也可以使用。

3、原理解释

        Lombok使一款在编译期生成代码的工具包

Java程序的运行原理:

Lombok的运行原理:

4、更多使用

        @Data 生成的方法很多,如果想要更精细的使用,Lombok也提供了一些更精细粒度的注解:

@Getter                                        自动添加getter方法

@Setter                                        自动添加setter方法

@ToString                                    自动添加toString方法

@EqualAndHashCode                自动添加equals和hashCode方法

@NoArgsConstructor                 自动添加无参构造方法

@AllArgsConstructor                 自动添加全属性构造方法

@NonNull                                     属性不能为null

@RequiredArgsConstructor      自动添加必需属性的构造方法(final+@NonNull为必需)

@Data = @Getter + @Setter + @ToString + @EqualAndHashCode + @NoArgsConstructor + @RequiredArgsConstructor 

5、更快捷的引入依赖

        我们可以通过安装插件的方法,来更方便快捷的引入依赖。

安装插件EditStarter,重启Idea:

重启完成后,在 .xml 文件中右键点击创建构造方法,会出现一个 EditStarter 的绿色图标:  

        勾选上后点击OK,就可以成功添加依赖了~还有很多其他的依赖也可以通过这个工具包来添加,方便快捷。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大语言模型在病理AI领域中的应用2|文献速递·24-07-18
  • 2024717-VSCode-1.19.1-部署gcc13-C++23-win10-22h2
  • 第122天:内网安全-域信息收集应用网络凭据CS 插件AdfindBloodHound
  • 使用Redis的SETNX命令实现分布式锁
  • 科普文:微服务技术栈梳理
  • 详细讲解下 算法中的 堆栈
  • 提示工程的技术与策略分类
  • 贪心算法(2024/7/16)
  • 从0到1搭建数据中台(4):neo4j初识及安装使用
  • Golang 创建 Excel 文件
  • PlantUML-UML 绘图工具安装、Graphviz安装、本地使用/在线使用、语法、图示案例
  • 源码分析SpringCloud Gateway如何加载断言(predicates)与过滤器(filters)
  • Java毕业设计 基于SpringBoot的景区行李寄存管理系统
  • 【Django】网上蛋糕商城后台-类目管理
  • huawei USG6001v1学习---信息安全概念
  • 分享的文章《人生如棋》
  • [NodeJS] 关于Buffer
  • 【391天】每日项目总结系列128(2018.03.03)
  • Laravel核心解读--Facades
  • leetcode386. Lexicographical Numbers
  • Linux CTF 逆向入门
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • spark本地环境的搭建到运行第一个spark程序
  • springMvc学习笔记(2)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 服务器之间,相同帐号,实现免密钥登录
  • 技术发展面试
  • 警报:线上事故之CountDownLatch的威力
  • 力扣(LeetCode)357
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一个项目push到多个远程Git仓库
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $NOIp2018$劝退记
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)Jupyter Notebook 下载及安装
  • (145)光线追踪距离场柔和阴影
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C语言)fgets与fputs函数详解
  • (C语言)字符分类函数
  • (LLM) 很笨
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (七)c52学习之旅-中断
  • (原)Matlab的svmtrain和svmclassify
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)项目管理杂谈-我所期望的新人
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .mysql secret在哪_MYSQL基本操作(上)
  • .net framework4与其client profile版本的区别
  • .net 无限分类
  • .net程序集学习心得
  • .NET开发人员必知的八个网站