Lombok简介

2023-05-06 21:36:37 浏览数 (2)

Lombok简介

1、lombok简介

Lombok是一个第三方的Java工具库,会自动插入编辑器和构建工具。Lombok提供了一组非常有用的注解,用来消除Java类中的大量样板代码,比如settergetter方法、构造方法等。只需要在原来的JavaBean上使用@Data注解就可以替换数十行或数百行代码,从而使代码变得更加清爽、简捷且易于维护。

示例:

代码语言:javascript复制
//使用@Data注解可以省略getter和setter方法,构造方法等
@Data
public class User {
    private Integer id;
    private String name;
    private String password;
    
}

在上述代码中并没有写gettersetter等方法,但查看user类的结构中具有这些并未显示写出的方法,如下所示:

Lombok工具解决的是项目里JavaBean中大量的getter、setter、equals()、toString()等可能不会用到但是仍然需要在类中定义的方法,在使用Lombok后,将由它来自动实现部分代码的生成工作,可以极大地减少开发者编写代码的工作量,精简和优化这些JavaBean

2、springboot整合lombok

若使用idea则可在创建项目是选择lombok依赖,若不选择也没关系,直接在pom文件中添加如下依赖:

代码语言:javascript复制
 <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
 </dependency>

之后使用lombok则只需要在实体类前加入@Data注解,如下所示:

如上所示就不需要在写gettersetter等方法。

注意:@Data注解是一个比较“霸道”的注解,不仅能够生成JavaBean中所有属性的gettersetter方法,还自动提供equalscanEqualhashCodetoString方法。

如果不想生成这么多内容,可以使用其他的注解来实现开发时的需求。

  • @Setter:注解在属性上,为属性提供setting方法。
  • @Getter:注解在属性上,为属性提供getting方法。
  • @Log4j:注解在类上,为类提供一个属性名为log的log4j日志对象。
  • @NoArgsConstructor:注解在类上,为类提供一个无参的构造方法。
  • @AllArgsConstructor:注解在类上,为类提供一个全参的构造方法。
  • @Builder:为被注解的类加一个构造者模式。
  • @Synchronized:加同步锁。
  • @NonNull:给参数加上这个注解,当参数为null时,会抛出空指针异常。
  • @Value:注解和@Data注解类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

0 人点赞