Lombok 学习笔记
前言
用法参考:https://projectlombok.org/features/all
使用笔记
- @Data:自动生成无参构造方法(没有构造方法时)、Getter/Setter 方法、equals/hashCode 方法以及 toString 方法;
- @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:
- @NonNull:防止空指针;
- @Cleanup:优雅安全的关闭IO流
- @Log:推荐(@Slf4j,slf4j 是日志系统的门面)
- @Getter/@Setter
- @ToString
- @EqualsAndHashCode
- val:局部常量;
- var:局部变量;
- @Value
- @Builder
- @SneakyThrows
- @Synchronized
- @Getter(lazy=true)
推荐使用
@Data
@Data:自动生成无参构造方法(没有构造方法时)、Getter/Setter 方法、equals/hashCode 方法以及 toString 方法;
@Slf4j
@Slf4j 是日志系统的门面,会自动生成
private static final Logger log = LoggerFactory.getLogger(UserController.class);
@Builder
实体类上使用 @Builder 注解
package top.simba1949.model; import lombok.Builder; import lombok.Data; /** * @Author Theodore * @Date 2020/4/7 11:04 */ @Data @Builder public class User { private Integer id; private String username; private String password; private Boolean adultFlag; }
构建实体类 API
package top.simba1949.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import top.simba1949.model.User; /** * @Author Theodore * @Date 2020/4/7 11:06 */ @Slf4j @RestController @RequestMapping("user") public class UserController { @GetMapping public User get(){ // 使用 @Builder 构建实体类 User user = User.builder().id(1).username("李小白").password("醉酒楼").adultFlag(true).build(); return user; } }