前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot优雅编码之:Lombok加持

SpringBoot优雅编码之:Lombok加持

作者头像
CodeSheep
发布2018-05-22 11:55:21
6480
发布2018-05-22 11:55:21
举报

Lombok 通过提供简单的语法注解形式来帮助简化消除一些必须有但显得很臃肿的 java 代码。典型的是对于 POJO对象的简化(如自动帮我们生成Setter和Gett…

小米游戏本
小米游戏本

概述

Lombok 通过提供简单的语法注解形式来帮助简化消除一些必须有但显得很臃肿的 java 代码。典型的是对于 POJO对象的简化(如自动帮我们生成Setter和Getter等),有了Lombok的加持,开发人员可以免去很多重复且臃肿的操作,极大地提高java代码的信噪比,因此我们必须尝试并应用起来!


IntelliJ IDEA上配置

方法一:直接在IDEA界面中配置

  • 首先进入Plugins界面:
进入Plugins界面
进入Plugins界面
  • 然后搜索并安装Lombok插件:
安装Lombok插件
安装Lombok插件
  • 最后不要忘了开启Annotation Processors的Enable选项:
Enable Annotation Processors
Enable Annotation Processors

上述安装完成以后需要重启IDEA生效!


方法二:手动下载Lombok插件安装

有时由于网络原因,上面方法一这种方式安装失败,因此只能手动下载安装

选择lombok的zip包来安装
选择lombok的zip包来安装
  • 重启idea即可
重启IDEA生效
重启IDEA生效

IDE中设置完成以后需要在pom.xml中添加如下所示的lombok依赖才能使用


Lombok主要注解

  • @Getter and @Setter / 自动为属性提供 Set和Get 方法
  • @ToString / 该注解的作用是为类自动生成toString()方法
  • @EqualsAndHashCode / 为对象字段自动生成hashCode和equals实现
  • @AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / 顾名思义,为类自动生成对应参数的constructor
  • @Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / 自动为类添加对应的log支持
  • @Data / 自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter,为非final字段添加@Setter,和@RequiredArgsConstructor,本质上相当于几个注解的综合效果
  • @NonNull / 自动帮助我们避免空指针。作用在方法参数上的注解,用于自动生成空值参数检查
  • @Cleanup / 自动帮我们调用close()方法。作用在局部变量上,在作用域结束时会自动调用close方法释放资源

下文就Lombok中用的最为频繁的@Data@Log注解进行代码实战!


@Data注解使用

官网关于@Data注解的解释如下:

All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getter on all fields, @Setter on all non-final fields, and @RequiredArgsConstructor!

不难理解,其可以看成是多个Lombok注解的集成,因此使用很方便!

  • 先来创建一个POJO实体UserLombok,普通的写法如下:
  • Lombok加持后,写法可简化为:

在IDEA中使用时,Lombok的注解会自动补全,如下图所示:

Lombok注解自动补全
Lombok注解自动补全
  • 我们来写POJO的测试代码

由下图我们可以看到IDEA依然可以自动为我们补全由Lombok自动生成的代码:

自动生成的代码
自动生成的代码
  • 结果打印

由于Lombok为我们自动生成了toString方法,因此对象的打印结果如下:


@Log注解实战

在我的文章 Spring Boot日志框架实践 一文中,我们使用Log4j2来作为日志对象,其写法如下:

若改用Lombok后,写法变得更加简洁,我们只需要引入对应的@Log注解即可完成log对象的生成:

怎么样,是不是一切都是那么地优雅!


后记

作者更多的SpringBt实践文章在此:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • IntelliJ IDEA上配置
  • Lombok主要注解
  • @Data注解使用
  • @Log注解实战
  • 后记
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档