Lombok基础介绍

目录

第一章 Lombok介绍与原理

第二章 Lombok引入项目

2.1 pom.xml中引入Lombok

2.2 在IDEA中安装Lombok

第三章 Lombok使用介绍

3.1 概要讲解

3.2 细化讲解

3.3 注意事项

第四章 实例

4.1 @Data

4.2 @EqualsAndHashCode(of="id")与ToString(exclude = "updateTime")

4.3 @Slf4j


第一章 Lombok介绍与原理

介绍:Lombok是通过简单注解来精简代码达到消除冗长代码的目的,可以避免修改字段名字时忘记修改方法名.

原理:

 首先通过javac将源代码分析生成一棵抽象语法树AST,然后调用Lombok Annotation Processor,处理器对刚刚生成的AST进行处理,其调用Lombok Annotation Handler,其找到我们的注解(如@data)所在的类对应的语法树,接着修改该语法树,增加get,set节点.最后Lombok Annotation Processor输出一个修改过的抽象语法树,我们将拿到语法树进行解析和生成,就变成了我们的字节码文件.

第二章 Lombok引入项目

2.1 pom.xml中引入Lombok

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

2.2 在IDEA中安装Lombok

打开File->Settings搜索Lombok点击install,安装后重启即可.

第三章 Lombok使用介绍

3.1 概要讲解

@Data:加在类上,为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法

@Getter:自动生成get方法,

@Getter(AccessLevel.PROTECTED):生成的get方法是protected

@Setter:自动生成set方法,

@Setter(AccessLevel.PROTECTED):生成的set方法是protected

@NoArgsConstructor:类的无参构造器

@AllArgsConstructor:生成所有参数的构造器

@ToString:将类的所有属性进行ToString

@ToString(exclude="column"):将类的除去column属性进行ToString

@EqualsAndHashCode:类的Equals与HashCode方法将被自动重写.

@EqualsAndHashCode(exclude="column"):排除某几个属性其它的被自动重写

@Slf4j:logback日志框架:可以直接通过log调用Logger

@Log4j:当项目使用log4j日志框架时使用.

3.2 细化讲解

这里面只是举了ToString的例子,EqualsAndHashCode同理.exclude上面讲了是排除,写两个就是排除两个,of是只要指定字段.

 @Data其实包含@Getter,@Setter,@ToString,@EqualsAndHashCode,不包含全参与无参构造.并且默认是所有字段,并且在使用@EqualsAndHashCode会显式增加一个protected权限的canEqual方法,里面通过instance of进行返回判断,返回值是一个布尔.

3.3 注意事项

 

第四章 实例

下面将注解后增加的代码进行展示(通过反编译来的)

4.1 @Data

get,set进行省略

4.2 @EqualsAndHashCode(of="id")与ToString(exclude = "updateTime")

equals中只用了id:

toString中也没有updateTime

4.3 @Slf4j

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值