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
@Slf4j
@Slf4j 是日志系統的門面,會自動生成
private static final Logger log = LoggerFactory.getLogger(UserController.class);
實體類上使用 @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;
}
}