一、SpringBoot3中使用Lombok
-
添加依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
二、常用注解
- 下面介绍一下常用的几个注解:
- @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
- @Getter 使用方法同上,区别在于生成的是getter方法。
- @ToString 注解在类,添加toString方法。
- @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
- @NoArgsConstructor 注解在类,生成无参的构造方法。
- @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
- @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
- @Data 注解在类,生成无参构造、setter/getter、equals、canEqual、hashCode、toString方法。(如为final属性,则不会为该属性生成setter方法,如果为static属性,则不会生成setter和getter方法。)
- @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(当前类.class);
- @Builder注解的作用主要是用来生成对象,并且可以为对象链式赋值。
- Lombok反射生产的代码如下:
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.gdb.project.model.entity; public class User { private String username; private String password; User(final String username, final String password) { this.username = username; this.password = password; } //生成了一个静态方法来获取XXXBudiler类 public static UserBuilder builder() { return new UserBuilder(); } //生成了一个对应的静态内部类 XXXbuilder public static class UserBuilder { private String username; private String password; UserBuilder() { } public UserBuilder username(final String username) { this.username = username; return this; } public UserBuilder password(final String password) { this.password = password; return this; } // 最后调用这个方法可以获取到User类的实例 public User build() { return new User(this.username, this.password); } public String toString() { return "User.UserBuilder(username=" + this.username + ", password=" + this.password + ")"; } } }
- 实际的使用。
//通过链式编程的方式创建一个对象。 User.builder().username("张三").password("123321").build();
三、Lombok使用