知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
常用的 lombok 註解:
@EqualsAndHashCode:實現equals()方法和hashCode()方法 @ToString:實現toString()方法 @Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法 @Setter:註解在屬性上;為屬性提供 setting 方法 @Getter:註解在屬性上;為屬性提供 getting 方法 @Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌對象 @NoArgsConstructor:註解在類上;為類提供一個無參的構造方法 @AllArgsConstructor:註解在類上;為類提供一個全參的構造方法 @Cleanup:關閉流 @Synchronized:對象同步 @SneakyThrows:拋出異常
package cn.netkiller.graphql.domain; import lombok.Builder; import lombok.Data; @Builder @Data public class Author { private Integer id; private String name; private Integer age; public Author() { // TODO Auto-generated constructor stub } @Override public String toString() { return "Author [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
Author author = Author.builder().id(1).name("Neo Chen").age(40).build();
如果不想每次都寫
private final Logger logger = LoggerFactory.getLogger(CLASSNAME.class);
可以用註解 @Slf4j
package cn.netkiller.service; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import lombok.extern.slf4j.Slf4j; @RestController @Slf4j public class HelloController { // private static final Log log = LogFactory.getLog(HelloController.class); @GetMapping("/") public String hello() { Log.info("@Slf4j Test OK"); return "Hello World"; } }