天天看點

Lombok 學習筆記

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;
    }
}      

繼續閱讀