Lombok 可以通过简单注解来精简代码达到消除冗长代码的目的

优点:

  • 提高编码效率;
  • 使代码更简洁;
  • 消除冗长代码;
  • 避免修改字段名字时忘记修改方法名;

一、配置

依赖

  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.6</version>
  5. </dependency>

需要在 Idea 中搜索 Lombok 插件安装才可正常使用:
002.png

二、常用注解

  • @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