『了解即可』SpringBoot 2.x:整合Lombok

Posted 普通且阳光的码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『了解即可』SpringBoot 2.x:整合Lombok相关的知识,希望对你有一定的参考价值。

『了解即可』SpringBoot 2.x:整合Lombok

蓝色

概述

Lombok的官方介绍

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

Lombok的使用

添加Maven依赖,版本可以根据官方提供自行设置

<!-- lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope></dependency>
IntelliJ IDEA 配置 Lombok 插件
  • 打开 File > Settings > Plugins

  • 点击 Browse repositories...

    『了解即可』SpringBoot 2.x:整合Lombok
  • 搜索 Lombok Plugin

  • 点击 Install plugin

    『了解即可』SpringBoot 2.x:整合Lombok

  • 最后重启 IntelliJ IDEA

代码中的使用

Lombok在代码中主要以注解的形式使用,下面就介绍几个常用的注解

@Data : 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法;

@Setter : 注解在属性上;为属性提供 setting 方法

@Setter : 注解在属性上;为属性提供 getting 方法

@Log4j : 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

@NoArgsConstructor : 注解在类上;为类提供一个无参的构造方法

@AllArgsConstructor : 注解在类上;为类提供一个全参的构造方法

@Cleanup : 可以关闭流

@Builder : 被注解的类加个构造者模式

@Synchronized : 加个同步锁

@SneakyThrows : 等同于try/catch 捕获异常

@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常

@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法

Lombok有什么坏处?

  • 强X队友

因为Lombok的使用要求开发者一定要在 IDEA 中安装对应的插件,如果没有安装,使用IDEA 打开一个基于 Lombok 的项目会提示找不到方法等错误,导致项目编译失败。也就是说,项目组中有一个人使用了 Lombok,那么其他人就必须安装插件,否则没办法协同开发。

  • 代码可读性,可调试性低

在代码中使用了Lombok,确实可以帮忙减少很多代码,因为Lombok会帮忙自动生成很多代码。但是这些代码是要在编译阶段才会生成的,所以在开发的过程中,其实很多代码其实是缺失的。

在代码中大量使用Lombok,就导致代码的可读性会低很多,而且也会给代码调试带来一定的问题。

  • 破坏封装性

如果我们在代码中直接使用Lombok,那么他会自动帮我们生成getter、setter 等方法,这就意味着,一个类中的所有参数都自动提供了设置和读取方法。

总结

Lombok 作为常用的开发工具,优点是使用注解即可帮忙自动生成代码,大大减少了代码量,使代码非常简洁。 但是并不意味着 Lombok 的使用没有任何问题,在使 Lombok 的过程中,还可能存在对队友不友好、对代码不友好、对调试不友好、对升级不友好等问题。 最重要的是,使用 Lombok 还会导致破坏封装性的问题。
虽然使用Lombok存在着很多方便,但是也带来了一些问题。
只要大家在使用的过程中,或者评估要不要在代码中引入Lombok之前,在想到 的优点的同时,也能够考虑到他给代码带来的问题的。

以上就是Spring boot整合 Lombok 的全部内容。



1

2、

3、

4、


如果你喜欢这篇文章,就点下关注

一起学习 共同进步

期待美好的生活,明天见 (* ̄︶ ̄)



以上是关于『了解即可』SpringBoot 2.x:整合Lombok的主要内容,如果未能解决你的问题,请参考以下文章

springboot整合feign

springboot 2.x 整合redis

Springboot 2.x 整合Dubbo 2.6.x和Dubbo 2.7.x

Spring Boot 2.X - Spring Boot整合AMQP之RabbitMQ

3.Nacos服务整合SpringBoot框架技术

SpringBoot2.2.X整合ElasricSearch7.8