Lombok简介
1、lombok简介
Lombok
是一个第三方的Java
工具库,会自动插入编辑器和构建工具。Lombok
提供了一组非常有用的注解,用来消除Java类中的大量样板代码,比如setter
和getter
方法、构造方法等。只需要在原来的JavaBean
上使用@Data
注解就可以替换数十行或数百行代码,从而使代码变得更加清爽、简捷且易于维护。
示例:
代码语言:javascript复制//使用@Data注解可以省略getter和setter方法,构造方法等
@Data
public class User {
private Integer id;
private String name;
private String password;
}
在上述代码中并没有写getter
和setter
等方法,但查看user
类的结构中具有这些并未显示写出的方法,如下所示:
Lombok
工具解决的是项目里JavaBean
中大量的getter、setter、equals()、toString()
等可能不会用到但是仍然需要在类中定义的方法,在使用Lombok
后,将由它来自动实现部分代码的生成工作,可以极大地减少开发者编写代码的工作量,精简和优化这些JavaBean
。
2、springboot整合lombok
若使用idea
则可在创建项目是选择lombok
依赖,若不选择也没关系,直接在pom
文件中添加如下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
之后使用lombok
则只需要在实体类前加入@Data
注解,如下所示:
如上所示就不需要在写getter
和setter
等方法。
注意:@Data
注解是一个比较“霸道”的注解,不仅能够生成JavaBean
中所有属性的getter
和setter
方法,还自动提供equals
、canEqual
、hashCode
、toString
方法。
如果不想生成这么多内容,可以使用其他的注解来实现开发时的需求。
@Setter
:注解在属性上,为属性提供setting方法。@Getter
:注解在属性上,为属性提供getting方法。@Log4j
:注解在类上,为类提供一个属性名为log的log4j日志对象。@NoArgsConstructor
:注解在类上,为类提供一个无参的构造方法。@AllArgsConstructor
:注解在类上,为类提供一个全参的构造方法。@Builder
:为被注解的类加一个构造者模式。@Synchronized
:加同步锁。@NonNull
:给参数加上这个注解,当参数为null时,会抛出空指针异常。@Value
:注解和@Data注解类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。