Lombok介紹,使用方法及原理
Lombok介紹,使用方法及原理
Lombok 是一個自動插入編輯器和構建工具的Java庫。它提供了簡單的註解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 程式碼。
官方首頁:https://projectlombok.org/
下載位置:https://projectlombok.org/download
註解介紹:https://projectlombok.org/features/all
GitHub : https://github.com/rzwitserloot/lombok
常用註解介紹
@Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:註解在屬性上;為屬性提供 setting 方法
@Getter:註解在屬性上;為屬性提供 getting 方法
@Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
@Slf4j : 註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
@NoArgsConstructor:註解在類上;為類提供一個無參的構造方法
@AllArgsConstructor:註解在類上;為類提供一個全參的構造方法 所有引數
@NonNull: 註解在屬性上,用來校驗引數
@Getter @Setter:分別為屬性新增get/set方法
public class Person {
private String id;
private Logger log = Logger.getLogger(Person.class);
public Person() {
}
public Person(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
上述程式碼使用lombok可以這樣寫
@Log4j
@NoArgsConstructor
@AllArgsConstructor
public class Person {
@Getter @Setter private String id;
}
稍微介紹一下,細節有位大佬已經在簡書上描述的很明白了。
安裝及使用教程
安裝
一、Eclipse/My Eclipse安裝lombok
使用 lombok 是需要安裝的,如果不安裝,IDE 則無法解析 lombok 註解。
1. 先在官網下載最新版本的 JAR 包,我目前是1.16版
2. 雙擊下載下來的 JAR 包安裝 lombok,或者使用命令列 java -jar lombok.jar
3. 勾選要安裝的eclipse/my eclipse 單擊install/update按鈕
如果上述方法不可行,可嘗試以下方法:
1. 將 lombok.jar複製到myeclipse.ini / eclipse.ini所在的資料夾目錄下
2. 開啟 eclipse.ini / myeclipse.ini,在最後面插入以下兩行並儲存:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
3.重啟 eclipse / myeclipse
二、IDEA 安裝lombok
- 新增外掛Files->settings->plugins
- 點選按鈕【Install JetBrains plugin…】
- 在新彈出的視窗,搜尋lombok,在搜尋到的lombok上右鍵安裝就可以了
三、Maven依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven</artifactId>
<version>1.16.20.0</version>
<type>pom</type>
</dependency>
使用
- 在需要安裝Lombok的工程下加入lombok.jar包
- 在需要的類上或屬性上面加入想要的註解
原理解釋
lombok本質上就是這樣的一個實現了”JSR 269 API(可以參考這個)”的程式。在使用javac的過程中,它產生作用的具體流程如下:
1. javac對原始碼進行分析,生成一棵抽象語法樹(AST)。
2. 執行過程中呼叫實現了”JSR 269 API”的lombok程式。
3. 此時lombok就對第一步驟得到的AST進行處理,找到註解所在類或者屬性對應的語法樹(AST),然後修改該語法樹(AST),增加註解所定義的相應樹節點。
4. javac使用修改後的抽象語法樹(AST)生成位元組碼檔案。
總結
使用lombok省略了一系列的繁雜的方法定義,開發時間更短,提高了程式碼的簡潔性,同時也降低了程式碼的完整性和可讀性,使用lombok需要考慮清楚其利弊。據我所知,weixin-java-tools、 Elastic-Job使用了此JAVA庫。
參考文章
相關文章
- Lombok介紹及使用方法Lombok
- Lombok介紹和配置Lombok
- lombok註解介紹Lombok
- Ldd命令介紹及使用方法
- Docker的原理及特性介紹Docker
- Kafka的原理介紹及實踐Kafka
- Rsync原理介紹及配置應用
- mybatis原理,配置介紹及原始碼分析MyBatis原始碼
- Spring Cloud Stream 體系及原理介紹SpringCloud
- 《AOP挖掘記》概念介紹及原理初探(一)
- CGroup 介紹、應用例項及原理描述
- Python greenlet使用介紹及實現原理Python
- 四,Java運算子詳細分類及使用方法介紹Java
- golang ssh包使用方法介紹Golang
- Audit 功能的使用方法介紹
- FFmpeg原理介紹
- Flink sql實現原理及Apache Calcite介紹SQLApache
- 高階掃描技術及原理介紹(轉)
- vuex詳細介紹和使用方法Vue
- golang toolkits包的使用方法介紹Golang
- domutils 工具庫的使用方法介紹
- 網路測試DOS命令詳細介紹及使用方法舉例
- Oracle DRM原理介紹Oracle
- elastic search 原理介紹AST
- Quartz核心原理之架構及基本元素介紹quartz架構
- Ceph分散式儲存-原理介紹及簡單部署分散式
- JVM 垃圾回收器工作原理及使用例項介紹JVM
- Lombok 原理與實現Lombok
- nmap os探測使用方法及原理
- Hanlp在ubuntu中的使用方法介紹HanLPUbuntu
- Android中SharedPreferences使用方法介紹Android
- GC演算法介紹及工作原理和優缺點GC演算法
- tornado原理介紹及非同步非阻塞實現方式非同步
- Async Commit 原理介紹MIT
- phpob快取原理介紹PHP快取
- Apache kafka 工作原理介紹ApacheKafka
- 簡單介紹Lombok使用@Tolerate實現衝突相容問題Lombok
- vagrant介紹及使用