官网: projectlombok.org
优点
消除冗长代码,让代码更加简洁,清爽
环境准备
加入依赖
maven仓库: https://mvnrepository.com/artifact/org.projectlombok/lombok
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
idea安装lombok插件
常用注解
@Data
编译后生产get/set,equals,hashCode,toString等方法
@Builder
生成一个Builder静态内部类
@NoArgsConstructor
生成一个无参构造器
@AllArgsConstructor
生成一个全部参数构造器
@Slf4j
生成一个Logger 对象
@RequiredArgsConstructor
生成一个包含常量的构造器
示例
User.java
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {
Integer id;
String name;
String sex;
}
编译之后 User.class
//@Builder的使用 以前创建对象用一堆set的地方 使用builder可以链式调用方便简洁
User user = User.builder().id(id).name("张三").build();
UserController.java
@Slf4j
@RestController
@RequestMapping("user")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class UserController {
private final UserService userService;
@GetMapping("{id}")
public User getUser(@PathVariable Integer id){
log.info("获取id为" + id +" 的用户");
return User.builder().id(id).name("张三").build();
}
}
编译之后 UserController.class