IntelliJ IDEA 使用 lombok,減少冗長(zhǎng)代碼,使pojo更簡(jiǎn)潔

對(duì)于 POJO, 我們需要為其中的每個(gè)字段生成 getter,setter 方法, 雖然能夠使用 IDE 快速為我們生成. 但如果需要修改字段名稱及字段類型, 那么就需要?jiǎng)h除在重新進(jìn)行生成, 終究還是有一些不方便. 如果使用 lombok, 可以通過一些簡(jiǎn)單的注解直接生成我們所需要的代碼, 能極大的提高開發(fā)體驗(yàn).

  1. pom引入依賴

     <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <optional>true</optional>
      </dependency>
    
  2. idea下載插件

  3. lombok 常用注解介紹

    • @NonNull : 使用 @NonNull 注解修飾的字段 通過 set 方法設(shè)置時(shí)如果為 null, 將拋出 NullPointerException
    • @Cleanup : 主要用來修飾 IO 流相關(guān)類, 會(huì)在 finally 代碼塊中對(duì)該資源進(jìn)行 close();
    • @Getter,@Setter : 為字段生成 getter,setter 方法, 標(biāo)記到類上表明為所有字段生成
    • @ToString : 生成 toString 方法, 默認(rèn)打印所有非靜態(tài)字段
    • @EqualsAndHashCode : 生成 equals 和 hashCode 方法
    • @NoArgsConstructor : 無參構(gòu)造函數(shù)
    • @RequiredArgsConstructor : 為未初始化的 final 字段和使用 @NonNull 標(biāo)注的字段生成構(gòu)造函數(shù)
    • @AllArgsConstructor : 為所有字段生成構(gòu)造函數(shù)
    • @Data : 相當(dāng)于同時(shí)使@Getter,@Setter,@ToString,@EqualsAndHashCode,@RequiredArgsConstructor
    • @Value : 類將使用 final 進(jìn)行修飾,同時(shí)使用@ToString,@EqualsAndHashCode,@AllArgsConstructor,@Getter
    • @Builder : 創(chuàng)建一個(gè)靜態(tài)內(nèi)部類, 使用該類可以使用鏈?zhǔn)秸{(diào)用創(chuàng)建對(duì)象
      如 User 對(duì)象中存在 name,age 字段, User user=User.builder().name("姓名").age(20).build()
    • @SneakyThrows : 對(duì)標(biāo)注的方法進(jìn)行 try catch 后拋出異常, 可在 value 輸入需要 catch 的異常數(shù)組, 默認(rèn) catch Throwable
    • @Synchronized : 在標(biāo)注的方法內(nèi) 使用 synchronized($lock) {} 對(duì)代碼進(jìn)行包裹 ,$lock 為 new Object[0]
    • @Log,@CommonsLog,@JBossLog,@Log,@Log4j,@Log4j2,@Slf4j,@XSlf4j : 生成一個(gè)當(dāng)前類的日志對(duì)象, 可以使用 topic 指定要獲取的日志名稱,使用log...使用
  4. 自定義配置

    雖然 lombok 能為我們快速生成代碼, 但是有一些生成的代碼依然無法滿足我們的需求. 此時(shí)可配置 lombok.config 來解決問題

    以下列出一些常用的配置

      lombok.getter.noIsPrefix=true(默認(rèn): false)  #lombok 默認(rèn)對(duì) boolean 類型字段生成的 get 方法使用 is 前綴, 通過此配置則使用 get 前綴
      lombok.accessors.chain=true(默認(rèn): false) #默認(rèn)的 set 方法返回 void 設(shè)置為 true 返回調(diào)用對(duì)象本身
      lombok.accessors.fluent=true(默認(rèn): false) #如果設(shè)置為 true. get,set 方法將不帶 get,set 前綴, 直接以字段名為方法名
      lombok.log.fieldName=logger(默認(rèn): log) #設(shè)置 log 類注解返回的字段名稱
    

注 : 在 IDEA 中,lombok.config 文件 請(qǐng)放置于 src\main\java 目錄下, 在 src\main\resources 中將不生效

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 對(duì)于 POJO, 我們需要為其中的每個(gè)字段生成 getter,setter 方法, 雖然能夠使用 IDE 快速為我...
    jnil閱讀 9,310評(píng)論 0 8
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • Lombok簡(jiǎn)介 Lombok是一個(gè)可以通過簡(jiǎn)單的注解形式來幫助我們簡(jiǎn)化消除一些必須有但顯得很臃腫的Java代碼的...
    緩慢移動(dòng)的蝸牛閱讀 145,438評(píng)論 19 124
  • Lombok 簡(jiǎn)介 Lombok項(xiàng)目通過添加“處理程序”,使java成為一種更為簡(jiǎn)單的語(yǔ)言。 簡(jiǎn)單來說,比如我們新...
    cd379ee5641b閱讀 2,373評(píng)論 0 3
  • 這兩天在喜馬拉雅里聽到了新的一個(gè)吟誦調(diào),自己覺得非常好聽,于是就開始學(xué)習(xí)。在學(xué)習(xí)過程中,感受著古典詩(shī)歌的美,尤其是...
    童心居士海闊天空閱讀 394評(píng)論 0 0

友情鏈接更多精彩內(nèi)容