Intellij idea 不能識別 @Slf4j,@Getter ,@Setter註解,安裝Lombok
以前的Java專案中,充斥著太多不友好的程式碼:POJO的getter/setter/toString;異常處理;I/O流的關閉操作等等,這些樣板程式碼既沒有技術含量,又影響著程式碼的美觀,Lombok應運而生。
1. Lombok的使用
Lombok的使用非常簡單:
1)引入相應的maven包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
Lombok的scope=provided,說明它只在編譯階段生效,不需要打入包中。事實正是如此,Lombok在編譯期將帶Lombok註解的Java檔案正確編譯為完整的Class檔案。
2)新增IDE工具對Lombok的支援
IDEA中引入Lombok支援如下:
點選File-- Settings設定介面,安裝Lombok外掛
點選File-- Settings設定介面,開啟 AnnocationProcessors:
開啟該項是為了讓Lombok註解在編譯階段起到作用。
2. Lombok實現原理
自從Java 6起,javac就支援“JSR 269 Pluggable Annotation Processing API”規範,只要程式實現了該API,就能在javac執行的時候得到呼叫。
Lombok就是一個實現了"JSR 269 API"的程式。在使用javac的過程中,它產生作用的具體流程如下:
1. javac對原始碼進行分析,生成一棵抽象語法樹(AST)
2. javac編譯過程中呼叫實現了JSR 269的Lombok程式
3. 此時Lombok就對第一步驟得到的AST進行處理,找到Lombok註解所在類對應的語法樹 (AST),然後修改該語法樹(AST),增加Lombok註解定義的相應樹節點
4. javac使用修改後的抽象語法樹(AST)生成位元組碼檔案
參考:
《Lombok的基本使用》
相關文章
- 【SpringBoot學習筆記】-IDEA中使用gradle和Mybatis
- golang自動生成setter和getter
- 記一次使用idea外掛CamelCase技巧
- 在idea上 maven 打包
- intellij IDEA建立檔案新增註釋模板
- 基於jsp和servlet簡單的java web開發(idea)
- 從零開始寫一個簡單的註冊登入系統(Servlet+Tomcat+MySQL+IDEA)
- 快速識別爛專案!試試這款專案程式碼統計IDEA外掛
- idea springboot專案主配置檔案(啟動檔案)顯示問號加紅叉,執行時: Unknown run configuration type SpringBootApplicationConf。。。
- Idea實體類上加@Data註解但get/set方法不生效
- IDEA社群版建立spring boot專案的安裝外掛
- (已解決)idea 修改html jsp需要重啟 重新打包 熱部署失敗 問題
- idea之設定web工程的Tomcat
- 關於IDEA中SSM專案Web工程引入pom.xml後仍然找不到包的問題
- idea中module不生成iml檔案解決
- 手把手教你5分鐘從零開發一款簡易的IDEA外掛!專案經驗/畢設不愁了!
- idea 格式化快捷鍵按了無反應
- IntelliJ IDEA 執行專案的時候提示 Command line is too long 錯誤
- IDEA社群版(Community)和付費版(UItimate)的區別