lombok做用
消除模板代碼
getter、setter、構造器、toString()、equals()
便捷的生成比較複雜的代碼,例如一個POJO要轉化成構建器模式的形式,只須要一個註解。spring
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
@Data public class User { private String name; private int age; }
@Test
public void testUser(){
User user = new User(); user.setName("AnyCode"); user.setAge(20); System.err.println(user.toString()); }
@NonNull : 讓你不在擔心而且愛上NullPointerException
@CleanUp : 自動資源管理:不用再在finally中添加資源的close方法
@Setter/@Getter : 自動生成set和get方法
@ToString : 自動生成toString方法
@EqualsAndHashcode : 從對象的字段中生成hashCode和equals的實現
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
自動生成構造方法
@Data : 自動生成set/get方法,toString方法,equals方法,hashCode方法,不帶參數的構造方法
@Value : 用於註解final類
@Builder : 產生複雜的構建器api類
@SneakyThrows : 異常處理(謹慎使用)
@Synchronized : 同步方法安全的轉化
@Getter(lazy=true) :
@Log : 支持各類logger對象,使用時用對應的註解,如:@Log4jdocker
@Slf4j:同上api
注意:lombok 的註解不能被繼承。安全
若是想讓lombok生效咱們還須要針對idea工具進行插件的安裝,下面咱們按照順序打開Idea配置
File > Settings > Plugins > Browse repositories... > 輸入lombok,插件就會被自動檢索出來,以下圖所示:
個人工具已經安裝了該插件,全部在右側是沒有任何按鈕的,若是你的工具沒有安裝該插件,
右側會有一個綠色的按鈕,按鈕的內容則是Install,點擊安裝後重啓Idea就能夠了。springboot
package com.jxlg.lance.springbootcorestudy.lombok; import lombok.*; /** * @author lance(ZYH) * @function 測試其餘註解 * @date 2018-03-22 12:27 */ @EqualsAndHashCode @ToString @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; }
@EqualsAndHashCode @ToString(of = {"stuName","stuAge"}) @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; }
@EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; }
@EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter @Builder public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; } 測試類: package com.jxlg.lance.springbootcorestudy.lombok; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.junit.Assert.*; @RunWith(JUnit4.class) public class StudentTest { @Test public void test(){ Student student = Student.builder() .stuName("張三") .stuAge(12) .stuClass("高三") .stuNumber(12222) .build(); System.out.println(student); } } 結果: Student(stuName=張三, stuAge=12, stuClass=高三, stuNumber=12222)
@Data @Builder public class User { private String name; private Integer age