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

對(duì)于 POJO, 我們需要為其中的每個(gè)字段生成 getter,setter 方法, 雖然能夠使用 IDE 快速為我們生成. 但如果需要修改字段名稱及字段類型, 那么就需要?jiǎng)h除在重新進(jìn)行生成, 終究還是有一些不方便. 如果使用 lombok, 可以通過(guò)一些簡(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 注解修飾的字段 通過(guò) set 方法設(shè)置時(shí)如果為 null, 將拋出 NullPointerException
    • @Cleanup : 主要用來(lái)修飾 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 : 無(wú)參構(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 能為我們快速生成代碼, 但是有一些生成的代碼依然無(wú)法滿足我們的需求. 此時(shí)可配置 lombok.config 來(lái)解決問(wèn)題

    以下列出一些常用的配置

      lombok.getter.noIsPrefix=true(默認(rèn): false)  #lombok 默認(rèn)對(duì) boolean 類型字段生成的 get 方法使用 is 前綴, 通過(guò)此配置則使用 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)系作者
  • 序言:七十年代末藕坯,一起剝皮案震驚了整個(gè)濱河市唐含,隨后出現(xiàn)的幾起案子畜侦,更是在濱河造成了極大的恐慌压怠,老刑警劉巖池充,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桩引,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡收夸,警方通過(guò)查閱死者的電腦和手機(jī)坑匠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卧惜,“玉大人厘灼,你說(shuō)我怎么就攤上這事⊙蚀桑” “怎么了设凹?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)茅姜。 經(jīng)常有香客問(wèn)我闪朱,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任奋姿,我火速辦了婚禮锄开,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘称诗。我一直安慰自己萍悴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布寓免。 她就那樣靜靜地躺著癣诱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪再榄。 梳的紋絲不亂的頭發(fā)上狡刘,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音困鸥,去河邊找鬼嗅蔬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛疾就,可吹牛的內(nèi)容都是我干的澜术。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼猬腰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鸟废!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起姑荷,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盒延,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鼠冕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體添寺,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年懈费,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了计露。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憎乙,死狀恐怖票罐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泞边,我是刑警寧澤该押,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站阵谚,受9級(jí)特大地震影響沈善,放射性物質(zhì)發(fā)生泄漏乡数。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一闻牡、第九天 我趴在偏房一處隱蔽的房頂上張望净赴。 院中可真熱鬧,春花似錦罩润、人聲如沸玖翅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)金度。三九已至,卻和暖如春严沥,著一層夾襖步出監(jiān)牢的瞬間猜极,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工消玄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跟伏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓翩瓜,卻偏偏與公主長(zhǎng)得像受扳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兔跌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

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