目录
- 【官网】
- 【使用篇】
- 【注意事项】
- 【Maven依赖】
- 【SpringBoot】
- 【常用注解】
- 【推荐写法】
- 【推荐好文】
【官网】
https://github.com/rzwitserloot/lombok
【使用篇】
【注意事项】
在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件
(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide雷同)
【Maven依赖】
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
【SpringBoot】
创建SpringBoot项目时可以直接勾选即可
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
【常用注解】
@Data注解:在JavaBean中使用,这个注解包含范围最广,它包含getter、setter注解,即当使用当前注解时,会自动生成包含的所有方法;
@builder注解:在JavaBean中使用,使用此注解可通过builder方式初始化对象
@getter注解:在JavaBean中使用,使用此注解会生成对应的getter方法;
@setter注解:在JavaBean中使用,使用此注解会生成对应的setter方法;
@NoArgsConstructor注解:在JJavaBean中使用,使用此注解会生成对应的无参构造方法;
@AllArgsConstructor注解:在JJavaBean中使用,使用此注解会生成对应的有参构造方法;
@ToString注解:在JJavaBean中使用,使用此注解会自动重写对应的toStirng方法;
@EqualsAndHashCode注解:在JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;
@Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
@Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
lombok注解在java进行编译时进行代码的构建,对于java对象的创建工作它可以更优雅,不需要写多余的重复的代码,这对于JAVA开发人员是很重要的,在出现lombok之后,对象的创建工作更提供Builder方法,对属性的赋值采用Builder的方式,这种方式最优雅
【推荐写法】
@Data
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class UserInfo {
private String name;
@Builder.Default
private String email = "bgood@sina.com";
}
注:@Builder.Default 设置默认值,如果保错请升级lombok版本(低版本不支持)
@Builder注解赋值新对象
UserInfo userInfo = UserInfo.builder()
.name("zzl")
.email("bgood@sina.com")
.build();
@Builder注解修改原对象的属性值,要求实体上添加@Builder(toBuilder=true)
userInfo = userInfo.toBuilder()
.name("OK")
.email("zgood@sina.com")
.build();
【推荐好文】
使用Lombok编写优雅的Bean对象
IDEA中用好Lombok,撸码效率至少提升5倍
手撸了一个 Lombok