Lombok - 加依賴 | 裝插件 | 加註解

1.Lombok的使用

|
|-加依賴 |--<dependency><groupId>org.projectlombok</groupId>
|        |  <artifactId>lombok</artifactId>
|        |  <version>1.16.18</version><scope>provided</scope></dependency>
|
|-IDE安裝插件
|
|-加註解 |--@Getter(value = AccessLevel.PUBLIC)  : value可省略可修改
|        |--@Setter(value = AccessLevel.PUBLIC)
|        |--@ToString : 可以通過of屬性限定顯示某些字段,通過exclude屬性排除某些字段
|        |--@EqualsAndHashCode
|        |--@NonNull  :主要作用於成員變量和參數中,標識不能爲空,否則空指針 ;@NonNull privare String name;
|        |
|        |--@NoArgsConstructor       | 有staticName、access等屬性
|        |--@RequiredArgsConstructor | staticName屬性一旦設定,將採用靜態方法的方式生成實例
|        |--@AllArgsConstructor      | access屬性可以限定訪問權限
|        |
|        |--@Data    :相當於 @ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
|        |--@Builder :作用於類上,將類轉變爲建造者模式
|        |
|        |--@Log  | 作用於類上,生成日誌變量。針對不同的日誌實現產品,有不同的註解:
|        |  	  | @CommonsLog @JBossLog @Log @Log4j @Log4j2 @Slf4j @XSlf4j
|        | 
|        |--@Cleanup:自動關閉資源,針對實現了java.io.Closeable接口的對象有效,如:典型的IO流對象。
|        |--@SneakyThrows:可以對受檢異常進行捕捉並拋出
|        |--@Synchronized:作用於方法級別,可以替換synchronize關鍵字或lock鎖,用處不大

2.安裝插件
IDEA中配置Lombok

|
|-- 點擊File-- Settings設置界面,安裝Lombok插件。
|-- 點擊File-- Settings設置界面,開啓 Annotation Processors(默認開啓)-讓Lombok註解在編譯階段起到作用

Eclipse中配置Lombok

|
|--	下載 lombok.jar :https://projectlombok.org/download.html
|-- 引入 lombok.jar : 放在eclipse安裝目錄下(和eclipse.ini 文件平級)
|-- 在eclipse.ini配置文件中添加如下兩項內容   |
|						|                   |---" -Xbootclasspath/a:[lombok.jar所在路徑] "
|						|                   |---" -javaagent:[lombok.jar所在路徑] "
|						|例如
|						|----|---- " -Xbootclasspath/a:D:\eclipse\eclipse\lombok.jar "
|						|    |---- " -javaagent:D:\eclipse\eclipse\lombok.jar        "

3.Lombok實現原理

|
|--javac對源代碼進行分析,生成一棵抽象語法樹(AST)
|
|--javac編譯過程中調用實現了JSR 269的Lombok程序
|
|--此時Lombok就對第一步驟得到的AST進行處理   |---找到Lombok註解所在類對應的語法樹(AST)|                                         |---然後修改該語法樹(AST)|										  |---增加Lombok註解定義的相應樹節點
|
|--javac使用修改後的抽象語法樹(AST)生成字節碼文件

自從Java 6起,javac就支持"JSR 269 Pluggable Annotation Processing API"規範,
只要程序實現了該API,就能在javac運行的時候得到調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章