“小辣椒”,Lombok

注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解!

在Java项目里,每个JaveBean中我们都需要创建get/set方法,虽然idea中提供了快速构建get/set方法,但是每次增删改属性都需要维护它的get/set方法,特别麻烦。所以今天介绍Lombok插件,使我们平常在开发过程中提高效率,使JavaBean的代码可以至少省一半。

一、什么是Lombok

官网地址:https://www.projectlombok.org/

打开官网,首页上有它的简介,如下:

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是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。
永远不要再写另一个getter或equals方法,使用一个注释,您的类具有一个功能齐全的构建器,自动化您的日志记录变量等等。

二、如何使用Lombok

1、安装插件和配置依赖

在这里插入图片描述
如上图所示,Lombok支持所有主流的 IDE 开发工具及编译构建工具,上图Bulid tool就是集成编译构建工具,IDEs就是各个ide开发工具的插件介绍。

因为本人使用的是Intellij IDEA,所以接下来介绍在IDEA中安装Lombok插件,使编译的时候不会报错。
点击上图的Intellij IDEA,跳转到官网的教程。

在这里插入图片描述
下面配上Intellij IDEA安装Lombok插件的教程…,因为我已经安装过Lombok插件,所以图下红色箭头之中的地方显示的是update按钮,如果未安装,这个按钮是绿色Install字样。
在这里插入图片描述
下面是 Maven 的依赖配置,在用 Maven 打包的时候也能自动生成需要的代码,在官网上点击
install–>maven。
在这里插入图片描述

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.6</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

如果你使用了 Spring Boot,可以不用带版本号,在 Spring Boot spring-boot-dependencies.pom 这个配置文件里面定义了 Lombok 依赖。
所以,你只需要继承版本号即可,当然,有必要的话,你也可以自定义版本号。

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<scope>provided</scope>
</dependency>
2、使用注解简化代码

在Lombok的包中我们可以看到所有支持的注解。
在这里插入图片描述
1、@Getter和@Setter

添加 @Getter 和 @Setter 注解用在 Java Bean 类上面,无需生成 get/ set 方法,会自动生成所有的 get/ set 方法及一个默认的构造方法。

在这里插入图片描述
2、@ToString

使用在类上,默认生成所有非静态字段以下面的格式输出。

public String toString(){
    return "User(userName=" + getUserName() + ", id=" + getId() + ", age=" + getAge() + ", address=" + getAddress() + ", memo=" + getMemo() + ")";
}

3、@NoArgsConstructor

使用在类上,默认生成一个无参的构造方法。

4、@RequiredArgsConstructor

使用在类上,使用类中所有带有 @NonNull 注解和 final 类型的字段生成对应的构造方法。

5、@AllArgsConstructor

用在类上,生成一个所有参数的构造方法,默认不提供无参构造方法。

6、@Data

用在类上,等同于下面这几个注解合集。

  • @Getter
  • @Setter
  • @RequiredArgsConstructor
  • @ToString
  • @EqualsAndHashCode

7、@Value

用在类上,等同于下面这几个注解合集。

  • @Getter
  • @FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE)
  • @AllArgsConstructor
  • @ToString
  • @EqualsAndHashCode

8、@NonNull

用在属性上,用于字段的非空检查,如果传入到 set 方法中的值为空,则抛出空指针异常,该注解也会生成一个默认的构造方法。

9、@Log4j
用在类上,为类提供一个 属性名为log 的 log4j 日志对像

等同于:private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(User.class);

10、@EqualsAndHashCode

用在类上,自动生成equals方法和hashCode方法

11、@Slf4j

@Slf4j跟Log4j一样,为类提供一个 属性名为log 的 Slf4j日志对像
等同于: private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(User.class);

=============================================
以上主要是讲解日常使用频繁的注解,还有更多注解,有兴趣的同学自行学习,谢谢!

附上Lombok api文档地址:https://projectlombok.org/api/overview-summary.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值