通过lombok减少重复劳动

2023-11-19

lombok 是什么: lombok是一个java开发工具, 能帮助我们减少大量的重复劳动.

lombok能帮助我们做什么: lombok提供了大量的注解, 只要添加了这些注解,lombok就能自动完成很多代码.

举个例子, 我们在写java的POJO时, 往往需要写大量get, set和toString等方法. 这时候我们只需要在这个POJO上添加一个@Data注解,你只需要定义好属性,其他一切都搞定了, 如下图:

想要用lombok,必须要先干下面两件事:

首先在pom中引入lombok的依赖。

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

然后在idea的插件安装中搜索lombok插件并安装即可。

(安装完成后重启IDEA, 如果不安装插件, 在代码中使用lombok的注解是会报错的.)

下面介绍一下常用的lombok注解的用法:

POJO的注解 :

  •         @Getter : 自动生成属性的get方法
  •         @Setter : 自动生成属性的set方法
  •         @ToString: 自动生成toString 方法 , 格式是ClassName(fieldName= fieleValue ,fieldName1=fieleValue)
  •         @EqualsAndHashCode:自动生成equals和hashCode方法
  •         @RequiredArgsConstructor :自动生成指定参数的构造函数
  •         @NoArgsConstructor: 自动生成无参数构造函数
  •         @AllArgsConstructor:  自动生成包含所有属性参数的构造函数
  •         @Data : 这是个全家桶, 包含了@Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor等注解的定义.
  •         @Value: 是生成不可变类型的所有方法(私有方法,且是final), 和@Data类似

日志注解:

        @CommonsLog @JBossLog @Log @Log4j @Log4j2 @Slf4j @XSlf4j

        包含了大多数日志库,注解到方法上能自动生成私有的日志对象,需要和项目中的日志库匹配, 例如我在项目中用了slf4j, 那边就用@Slf4j注解

 

其他注解:

  •         @Builder: 自动生成一个建造者模式值对象的代码.
  •         @Synchronized: 方法注解, 类似于方法加Synchronized 关键字
  •         @NonNull: 方法的入参注解, 可以自动生成入参的空检查, 为空则抛出异常.

以上介绍了lombok的常用注解, 关于lombok的其他注解, 大家有兴趣可以去官网查一下.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过lombok减少重复劳动 的相关文章

随机推荐

  • C# 处理异常

    using System using System Collections Generic using System Linq using System Text namespace Ch13CardLib public class Car
  • YAML 文件语法学习

    一 概述 YAML是一个类似 XML JSON 的标记性语言 YAML 强调以数据为中心 并不是以标识语言为重点 YAML 是一种较为人性化的数据序列化语言 可以配合目前大多数编程语言使用 YAML 的语法比较简洁直观 特点是使用空格来表达
  • 解决打印org.apache.http.wire,org.apache.http.headers日志的问题

    最近在调试接口的过程中 发现使用httpClient的时候 控制台输出了很多org apache http wire org apache http headers相关的日志 不便于我观察自己调试业务过程中输出的日志 内容如下 10 02
  • 如何把一张照片用PS做成漫画风格

    如何把一张照片用PS做成漫画风格 原素材 漫画天空 1 打开ps 打开素材 然后按住ctrl j 复制一个图层 并修改好名字 如下图操作 2 执行 滤镜 滤镜库 干画笔 如图所示 三个参数分别是 0 10 2 3 执行 滤镜 Camera
  • Box2D C++ 教程-查询 World

    声明 本文翻译自Box2D C tutorial World querying 仅供学习参考 查询World 通常你可能想知道在给定的场景中都有哪些实体 例如有一个炸弹爆炸了 周围的所有实物都会受到不同程度的破坏 那么在RTS 译者注 Re
  • java计算机毕业设计景区在线购票系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计景区在线购票系统源码 mysql数据库 系统 lw文档 部署 java计算机毕业设计景区在线购票系统源码 mysql数据库 系统 lw文档 部署 本源码技术栈 项目架构 B S架构 开发语言 Java语言 开发软件 i
  • 【转】结构体中Char a[0]用法——柔性数组

    有如下定义 typedef struct char a char b 0 其中元素Char b 0 叫做柔性数组 主要用于使结构体包含可变长字段 详细内容如下 柔性数组 柔性数组结构成员 C99中 结构中的最后一个元素允许是未知大小的数组
  • css hover 控制其他元素_CSS学习小结

    css语法 Selector Dcclaration Selector Property Value CSS注释 注释 CSS Selector 选择器 id class id id class class 插入样式表 外部样式表 内部样式
  • 深入浅出SQL(6)-聪明的表设计

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 聪明的表设计 为什么要规范化 本章多是理论 请注意理解 我们到目前为止创建的表 都没有经过仔细考虑 随着数据的越来越多 我们需要考虑的更多 好让现在的WHERE子句简
  • Linux——date

    命令简介 date 根据给定格式显示日期或设置系统日期时间 print or set the system date and time 指令所在路径 bin date 命令语法 date OPTION FORMAT date u utc u
  • python计算机视觉编程(四)图像到图像的映射

    图像到图像的映射 原理 仿射变换 仿射变换是一种二维坐标到二维坐标之间的线性变换 相同平面 它保持了二维图形的 平直性 直线经过变换之后依然是直线 和 平行性 二维图形之间的相对位置关系保持不变 平行线依然是平行线 且直线上点的位置顺序不变
  • VB中Shell和ShellExecute函数的使用方法和区别

    写了一个vb的程序 用来把原来写的几个vb和vc的程序整合起来 就是使用Shell函数 结果发现 vc的程序可以很好的显示 但vb写的却一运行就最小化了 仔细查看了一下以下文章 才发现原来shell函数的默认显示模式是windowstyle
  • java公用包共享_tomcat中设置多项目共享jar;类包

    随着服务器上的tomcat部署的项目越来越多 最近在部署一个新的项目的时候出现内存溢出的错误 Exception in thread main java lang OutOfMemoryError PermGen space at java
  • 对java和面向对象的理解?

    java是一款编程语言 是面向对象很有力的影响代表 面向对象 讲社会 实际生活中所有可见的事务抽象对象 用属性和方法来描述 划分模块化引入到java面向对象 方便后期的重复利用和扩展 解决人类的需求 聪明的设计者 灌入人的思维来解决问题 可
  • OSI七层模型和TCP/IP五层模型

    一 OSI七层模型 七层模型从下往上依次为物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 各层功能如图所示 应用层 与其它计算机进行通讯的一个应用 它是对应应用程序的通信服务的 例如 一个没有通信功能的自处理程序就不能执行通信的
  • python 使用pyinstaller 打包xpinyin 问题

    打包之后 启动错误 提示 mandarin dat 未找到 于是 找到这个文件 于打包好的pin exe放一起 再次运行还是这样 查资料说 修改 pyinstaller 的hook 测试失败 转战修改源代码 增加一个函数如果 默认查找的路径
  • 2021前端开发面试题:面试中该如何与HR谈薪资?

    问题 面试中该如何与HR谈薪资 解析 HR与你谈论薪资经常有如下套路 HR 您期望的薪资是多少 你 25K OK 你已经被HR成功套路 这个时候你的最高价就是25K了 然后HR会顺着这个价往下砍 所以你最终的薪资 般都会低于25K 等你接到
  • JS获取当前网站路径的参数值

    如果要获取当前网站路径的参数值 那么可以通过这个例子来实现 比如获取页面的 id 5 page 4 代码如下
  • es ik 分词插件 词库热加载源码分析

    package org wltea analyzer dic import java io IOException import org apache http client config RequestConfig import org
  • 通过lombok减少重复劳动

    lombok 是什么 lombok是一个java开发工具 能帮助我们减少大量的重复劳动 lombok能帮助我们做什么 lombok提供了大量的注解 只要添加了这些注解 lombok就能自动完成很多代码 举个例子 我们在写java的POJO时