SpringBoot自学(四)使用LomBok

版权声明:本文为博主原创文章,请尊重原创,未经博主允许禁止转载,保留追究权 https://blog.csdn.net/qq_29914837/article/details/90113342

1、什么是LomBok

Lombok是能自动接通编辑器和构建工具的一个Java库,是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法。

2、导入依赖

<!-- Lombok依赖-消除那些必须要写但是重复的代码 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<!-- <version>1.18.6</version> -->
		</dependency>

导入依赖后,使用LomBok注解时,可能遇到jar包不生效原因,是因为使用Eclipse还没有安装lombok插件

3、Eclipse安装lombok

进入lombok 官网:https://www.projectlombok.org/
在这里插入图片描述

在这里插入图片描述

安装方式:双击打开官网下载的jar包或者maven导入的jar包,选择以Java™ Platform SE binary的方式打开,

在这里插入图片描述

最后选择Install/Update即可安装成功!
安装成功后重启eclipse就会发现工程中的get、set方法的报错消失了。

4、lombok用法

lombok注解 作用
@Getter / @Setter 作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以使用该注解中的AccessLevel属性来指定Getter/Setter方法的访问级别
@ToString 生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。可以使用该注解中的exclude属性来指定生成的toSpring方法不包含对象中的哪些字段,或者使用of属性来指定生成的toSpring方法只包含对象中的哪些字段
@Slf4j 该注解是用来解决不用每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 这句代码的。使用的日志框架是LogBack
@Log4j 该注解也是用来解决不用每次都写日志对象声明语句的,从字面上也可以看出,使用的日志框架是log4j
@Data 注解是 @ToString、@EqualsAndHashCode注解,和所有属性的@Getter注解, 以及所有non-final属性的@Setter注解的组合,通常情况下,我们使用这个注解就足够了。
@EqualsAndHashCode 默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以使用exclude或of属性。
@NoArgsConstructor 生成无参构造器
@RequiredArgsConstructor 会生成一个包含标识了@NonNull注解的变量的构造方法。生成的构造方法是private,如果想要对外提供使用的话,可以使用staticName选项生成一个static方法。
@AllArgsConstructor 生成全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。
让你不在担忧并且爱上NullPointerException 让你不在担忧并且爱上NullPointerException
@CleanUp 自动资源管理:不用再在finally中添加资源的close方法
@EqualsAndHashcode 从对象的字段中生成hashCode和equals的实现
@Value 用于注解final类
@Accessors(chain=true) 支持链式使用,user.setId(1).setName(“name”)

4、测试lombok是否生效

新建一个User类,这个是使用lombok的类,代码如下:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private Integer id;
    private String name;
    private String password;
}

猜你喜欢

转载自blog.csdn.net/qq_29914837/article/details/90113342