在我们写代码的时候一般会使用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:注解在类上为类提供一个全参的构造方法