Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

2.35. Spring boot with lombok

		
		<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:拋出異常
		
	

2.35.1. @Builder

		
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();		
		
		

2.35.2. @Slf4j 註解

如果不想每次都寫

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

}