在我們寫代碼的時候一般會使用setter和getter方法對屬性進行賦值和取值,如果屬性比較多的話,那么從代碼量來說是一個復雜的工程,盡管sts或ecplise提供了自動生成的的方法,但是從效果上來看並不美觀,如一下代碼
1 package com.cy.pj.pojo; 2 3 import java.util.Date; 4 5 import lombok.AllArgsConstructor; 6 import lombok.Data; 7 import lombok.NoArgsConstructor; 8 9 //@Data 10 //@NoArgsConstructor 11 //@AllArgsConstructor 12 public class SysLog { 13 14 private Integer id; 15 private String username; 16 private String operation; 17 private String method; 18 private String params; 19 private Date time; 20 private String ip; 21 private Date createdTime; 22 public Integer getId() { 23 return id; 24 } 25 public void setId(Integer id) { 26 this.id = id; 27 } 28 public String getUsername() { 29 return username; 30 } 31 public void setUsername(String username) { 32 this.username = username; 33 } 34 public String getOperation() { 35 return operation; 36 } 37 public void setOperation(String operation) { 38 this.operation = operation; 39 } 40 public String getMethod() { 41 return method; 42 } 43 public void setMethod(String method) { 44 this.method = method; 45 } 46 public String getParams() { 47 return params; 48 } 49 public void setParams(String params) { 50 this.params = params; 51 } 52 public Date getTime() { 53 return time; 54 } 55 public void setTime(Date time) { 56 this.time = time; 57 } 58 public String getIp() { 59 return ip; 60 } 61 public void setIp(String ip) { 62 this.ip = ip; 63 } 64 public Date getCreatedTime() { 65 return createdTime; 66 } 67 public void setCreatedTime(Date createdTime) { 68 this.createdTime = createdTime; 69 } 70 71 72 }
現在來讓我們看看使用lombok依賴后,代碼的量減少了很多
1 package com.cy.pj.pojo; 2 3 import java.util.Date; 4 5 import lombok.AllArgsConstructor; 6 import lombok.Data; 7 import lombok.NoArgsConstructor; 8 9 @Data 10 @NoArgsConstructor 11 @AllArgsConstructor 12 public class SysLog { 13 14 private Integer id; 15 private String username; 16 private String operation; 17 private String method; 18 private String params; 19 private Date time; 20 private String ip; 21 private Date createdTime; 22 23 24 }
這兩段代碼實現的功能是相同的,但是代碼量卻減少了許多。
現在介紹lombok當中的一些注解的意思:
@Data:注解在屬性上為屬性提供getting和setting方法,處了這些以外還包括equals,canEqual,hashCode,toString方法
@Setter:注解在屬性上為屬性提供setting方法,注解在類上表示當前類中所有屬性都生成setter方法
@Getter:注解在屬性上為屬性提供getting方法,注解在類上表示當前類中所有屬性都生成getter方法
@Log4j:注解在類上為類提供一個屬性名為log的log4j日志對象
@NoArgsConstructor:注解在類上為類提供一個無參構造方法
@AllArgsConstructor:注解在類上為類提供一個全參的構造方法
