0
点赞
收藏
分享

微信扫一扫

Lombok 详解

gy2006_sw 2022-03-11 阅读 69

lombok 是什么

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。

idea安装lombok

Settings->Plugins安装Lombok插件,重启idea重启即可
image.png

使用lombok

引入依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>

使用提供的注解

//@Data注解:自动提供GET、SET、ToString、hashCode、equals 等方法
@Data
public class User {
    private int id;
    private String name;
    private Integer age;
    private Date bir;
}

lombok 注解

1.@Data 注解

  • 用在类上

  • 用来生成对象中的GET、SET、ToString、hashCode、equals 等方法

  • 具体用法

    @Data
    public class User {
      private int id;
      private String name;
      private Integer age;
      private Date bir;
    }

2.@Getter and @Setter 注解

  • 用在类上

  • 用来生成对象中的GET、SET方法

  • 具体用法

    @Getter
    @Setter
    public class User {
      private int id;
      private String name;
      private Integer age;
      private Date bir;
    }

3.@ToString 注解

  • 用在类上

  • 用来生成对象中的toString方法

  • 具体用法

    @ToString
    public class User {
      private int id;
      private String name;
      private Integer age;
      private Date bir;
    }

4.@AllArgsConstructor and @NoArgsConstructor 注解

  • 用在类上

  • 用来生成对象中的全参构造和无参构造方法

  • 具体用法

    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
      private int id;
      private String name;
      private Integer age;
      private Date bir;
    }

5.@Accessors

  • 用在类上

  • 用来给类中的set方法开启链式调用chain属性,用来指定是否开启链式调用

  • chain = true 开启,chain = false 关闭

  • 具体用法

    @Accessors(chain = true)
    @Data
    public class User {
      private int id;
      private String name;
      private Integer age;
      private Date bir;
    }
  • 效果

    public static void main(String[] args) {
      User user = new User();
      user.setId(1).setName("jack").setAge(21).setBir(new Date());
      System.out.println(user.toString());
    }

6.@slf4j

  • 用在类上

  • 用来快速定义给类中定义一个日志变量

  • 具体用法

    @Controller
    @RequestMapping("user")
    @Slf4j
    public class UserController {
    
      @RequestMapping("findAll")
      public String findAll() {
          return "findAll start...";
      }
    }
举报

相关推荐

0 条评论