SpringBoot学习

039-lombok

2018-08-03  本文已影响5人  郭艺宾

lombok简介

Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。

lombok作用

消除模板代码

getter、setter、构造器、toString()、equals()

便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解。

SpringBoot中使用lombok

首先创建项目:

接下来编写一个实体类User

可以看到实体类除了两个属性什么都没有,我们在测试类里面写一个测试方法

可以看到User类出现的都是Object类的方法。

现在给User加上lombok的注解@Data

现在再来看测试方法

可以看到多了很多setget方法。

这时候编译User类,打开class文件,可以看到内容

lombok的注解介绍

@NonNull : 让你不在担忧并且爱上NullPointerException

@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法

@Setter/@Getter : 自动生成set和get方法

@ToString : 自动生成toString方法

@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现

@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor

自动生成构造方法

@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法

@Value : 用于注解final类

@Builder : 产生复杂的构建器api类

@SneakyThrows : 异常处理(谨慎使用)

@Synchronized : 同步方法安全的转化

@Getter(lazy=true) :

@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j

推荐使用技巧

在 Bean / Entity 类上使用 @Data 注解。

需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。

注意:lombok 的注解不能被继承。

IDEA中使用lombok

如果想让lombok生效我们还需要针对idea工具进行插件的安装,下面我们按照顺序打开Idea配置

File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,如下图所示:

lombok常用注解详解

@EqualsAndHashCode,@ToString :告诉Lombok来生成 equals, hashCode方法,toString方法

在生成这些方法的时候lombok会使用所有的成员变量。

** @AllArgsConstructor** :会自动创建一个包括所有成员的构造器。

@Getter/@Setter: 注解会为每一个标记的成员变量自动生成对应的方法。

例如:

如果你不想将注解用在全部的成员变量上,而是仅仅部分变量上,那么你可以提供一个指定的哪一个成员变量需要

自动生成方法的变量。举例: 比如在这里,我们只想让stuName,stuAge两个成员变量出现在 toString 方法里。

如果你只是需要在Class中仅暴露几个字段,那么使用它们非常方便,但如果您需要为所有字段生成访问器,则会变得烦人又无聊。

为了使代码更加简洁, Lombok永续我们在类级上使用这些注解。如果这些注解放在类名之上,

那么lombok会自动为我们生成所有字段的访问方法。

@Buidler :实例化这个类,例如

@Data :简单的来说所有所有的注解我们都可以使用一个注解完成.也就是@Data

我们在定义类的时候 只需要加一个 @Data 注解,其他的注解我们都不需要在添加就可以达到前面所说的所有功能。

通过上面介绍的,我们平常使用Lombok只需要这样就是就可以了,如下:

参考文章:https://www.cnblogs.com/zhangyinhua/p/8623018.html

代码地址: https://gitee.com/blueses/spring-boot-demo

上一篇下一篇

猜你喜欢

热点阅读