Lombok 可以通过简单注解来精简代码达到消除冗长代码的目的
优点:
- 提高编码效率;
- 使代码更简洁;
- 消除冗长代码;
- 避免修改字段名字时忘记修改方法名;
一、配置
依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
需要在 Idea 中搜索 Lombok 插件安装才可正常使用:
二、常用注解
- @Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
- @Setter 注解在属性上;为属性提供 setting 方法
- @Getter 注解在属性上;为属性提供 getting 方法
- @Log4j 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
- @NoArgsConstructor 注解在类上;为类提供一个无参的构造方法
- @AllArgsConstructor 注解在类上;为类提供一个全参的构造方法
- @Cleanup 可以关闭流
- @Builder 被注解的类加个构造者模式
- @Synchronized 加个同步锁
- @SneakyThrows 等同于try/catch 捕获异常
- @NonNull 如果给参数加个这个注解 参数为null会抛出空指针异常
- @Value 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
- @toString 注解在类上;为类提供toString方法(可以添加排除和依赖);
三、使用示例
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
String name;
Integer age;
String address;
}
测试:
import com.example.demo.entity.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void testPerson () {
Person person1 = new Person("Xiaoyu", 23, "Kunming");
System.out.println(person1);
Person person2 = new Person();
person2.setName("Qiaoer");
person2.setAge(22);
person2.setAddress("Kunming");
System.out.println(person2.getName());
System.out.println(person2.getAge());
System.out.println(person2.getAddress());
}
}
输出:
Person(name=Xiaoyu, age=23, address=Kunming)
Qiaoer
22
Kunming