JAVA面向對象編程中的封閉性和安全性。封閉性即對類中的域變量進行封閉操作,即用private來修飾他們,如此一來其他類則不能對該變量訪問。這樣我們就將這些變量封閉在了類內部,這樣就提高了數據的安全性,當我們想要操作這些域變量怎么辦呢?
我們可以通過兩種方法,第一種即通過public方式的構造器(或稱構造函數),對象一實例化就對該變量賦值。第二種就是通過set和get方法進行賦值和取值,這樣就能提高域變量的安全性,同時又保證了域變量的封裝型。
所以當我們創建POJO類時,都會毫不猶豫的讓開發工具對域變量生成set,get方法,雖然不是我們自己手動添加,但每個類都要做重復的生成操作,而且當變量名或者是修飾符改變了,我們就要刪除set,get方法重新生成。那么我們怎么做能提高生產效率,不做重復工作呢?對,就是lombok。
lombok
lombok 提供了簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 代碼。通過使用對應的注解,可以在編譯源碼的時候生成對應的方法,所以不會影響任何運行效率。
常用的 lombok 注解:
@Data :注解在類上;包含了@ToString,@EqualsAndHashCode,@Getter / @Setter和@RequiredArgsConstructor的功能,提供類所有屬性的 getter 和 setter 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在屬性上;為屬性提供 setter 方法
@Getter:注解在屬性上;為屬性提供 getter 方法
@ToString:注解在類上;生成toString()方法,默認情況下,它會按順序(以逗號分隔)打印你的類名稱以及每個字段。可以這樣設置不包含哪些字段@ToString(exclude = "id") / @ToString(exclude = {"id","name"})
如果繼承的有父類的話,可以設置callSuper 讓其調用父類的toString()方法,例如:@ToString(callSuper = true)
@EqualsAndHashCode:注解在類上;生成hashCode()和equals()方法,默認情況下,它將使用所有非靜態,非transient字段。但可以通過在可選的exclude參數中來排除更多字段。或者,通過在parameter參數中命名它們來准確指定希望使用哪些字段。
@NonNull: 注解在屬性上;標識屬性是不能為空,為空則拋出異常。
@Slf4j :注解在類上;根據用戶實際使用的日志框架生成log日志對象。
@Log4j :注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象
@NoArgsConstructor:注解在類上;為類提供一個無參的構造方法。當類中有final字段沒有被初始化時,編譯器會報錯,此時可用@NoArgsConstructor(force = true),然后就會為沒有初始化的final字段設置默認值 0 / false / null。對於具有約束的字段(例如@NonNull字段),不會生成檢查或分配,因此請注意,正確初始化這些字段之前,這些約束無效。
@AllArgsConstructor:注解在類上;為類提供一個全參的構造方法
默認生成的方法是public的,如果要修改方法修飾符可以設置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)
@RequiredArgsConstructor:注解在類上;會生成構造方法(可能帶參數也可能不帶參數),如果帶參數,這參數只能是以final修飾的未經初始化的字段,或者是以@NonNull注解的未經初始化的字段@RequiredArgsConstructor(staticName = "of")會生成一個of()的靜態方法,並把構造方法設置為私有的。



安裝配置
加一些注解就能搞定很多事情,是不是很好用,既然很好用,花兩分鍾時間配置一下,不勉為其難吧。
一. 要使用注解,必須引入lombok提供的庫
maven引入依賴:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
gradle引入依賴:
compile group: 'org.projectlombok', name: 'lombok', version: '1.16.18'
二. 開發工具插件安裝
idea:






STS:
-
下載最新的lombok,https://projectlombok.org/download.html
-
切到lombok下載的目錄,運行命令: java -jar lombok.jar





切到sts的安裝目錄,驗證一下STS.ini文件:

eclipse
eclipse安裝方式過程同STS,安裝完成之后,請確認eclipse安裝路徑下是否多了一個lombok.jar包,並且其配置文件eclipse.ini中是否 添加了如下內容:
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
