第09章—使用Lombok插件

spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html

码云源码地址:https://gitee.com/jinxiaohang/springboot

〇、介绍Lombok

  我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString,每个javaBean都需要写,即使是使用IDE快速创建,会不会觉得很麻烦,而且当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?

  答案是有,我们来看一下下面这张图,左面是一个简单的JavaBean,在类上加上了@Data,等同右面一大串的代码。

  lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter、getter、toString()、constructor之类的代码。

一、引入依赖

如果是新建项目的,可以在这页添加依赖:

如果是原有项目,还可以在pom.xml 引入Lombok的依赖:

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

二、安装插件

使用的编辑器是IDEA,所以介绍的是在IDEA上安装插件。

  1.  File > Settings > Plugins
  2. 点击 Browse repositories
  3. 搜索 Lombok Plugin
  4. 点击 Install
  5. 重启 IDEA

三、编写实体类

import lombok.Data;

@Data
public class UserInfo {
    private String userId;
    private String userName;
    private String password;
}

观察structure栏,是有Getters、 Setters方法的。

四、测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserInfoTest {

    @Test
    public void user(){
        UserInfo userInfo = new UserInfo();
        userInfo.setUserId("1");
        userInfo.setUserName("2");
        userInfo.setPassword("3");
        System.out.println(userInfo.toString());
    }
}

 五、总结

@Getter / @Setter

  可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

@EqualsAndHashCode

  默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

@ToString

  生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

  无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

@Data

  @ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了。

参考文档:https://projectlombok.org/features/all

原文地址:https://www.cnblogs.com/jinxiaohang/p/8295678.html