Lombok
简介
-
这是一个Java类库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,为类生成get、set、toString等等方法,
-
在IDEA中需要安装Lombok Plugin插件才能识别Lombok注解,不然编辑器会报红
使用
添加maven依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
Spring Boot的spring-boot-starter-parent
的启动器里对 lombok 有版本管理,可以使用默认的版本
安装插件
打开idea的设置,点击Plugins,点击Browse repositories,在弹出的窗口中搜索lombok,然后安装即可
使用注解
下面例子里使用@Slf4j
注解给类中添加了log
对象,这样就可以直接在类里打印日志
@Slf4j
@RestController
@RequestMapping(("/"))
public class UserController {
@GetMapping("/logTest")
public void getUserById() {
if (log.isInfoEnabled()) {
log.info("log");
}
}
}
下面例子使用@data
注解为实体类生成setter/getter、equals、canEqual、hashCode、toString
方法,如果属性为final
则不会为该属性生成setter方法
@Data
public class User implements Serializable {
private static final long serialVersionUID = -8054600833969507380L;
private Integer id;
private String username;
private Integer age;
}
常用注解
@Setter
:在类或属性上使用,注解在类时为所有属性生成setter
方法,注解在属性上时只为该属性生成setter
方法。
@Getter
:使用方法同上,区别在于生成的是getter方法。
@ToString
:在类上使用,为该类添加toString
方法。
@EqualsAndHashCode
:在类上使用,生成hashCode
和equals
方法。
@NoArgsConstructor
:在类上使用,生成无参构造器。
@RequiredArgsConstructor
:在类上使用,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor
:在类上使用,生成全参构造器。
@Data
:在类上使用,生成setter/getter、equals、canEqual、hashCode、toString
方法,如为final
属性,则不会为该属性生成setter
方法。
@Slf4j
:在类上使用,生成log变量,严格意义来说是常量。
private static final Logger log = LoggerFactory.getLogger(UserController.class);