Java 程序員利器:lombok神工具

Lombok是一款非常實用Java工具,它可以幫助開發(fā)人員減少樣板代碼,使開發(fā)人員專注業(yè)務邏輯吹榴,在Java界幾乎無人不知胧洒。

前言

在Springboot開發(fā)過程中畏吓,我們經常會使用到POJO的知識,為了加快編碼效率略荡,有時會在IntelliJ IDEA中加載插件庵佣。那么今天就讓我們來認識一個常用插件 — Lombok

什么是lombok?

Lomboz是一個基于LGPL的開源J2EE綜合開發(fā)環(huán)境的Eclipse插件汛兜,對編碼巴粪,發(fā)布,測試,以及debug等各個軟件開發(fā)的生命周期提供支持肛根,支持JSP,EJB等辫塌。Lomboz是Eclipse的一個J2EE的插件,它將很多Java應用服務器派哲、J2EE組件和Web應用開發(fā)集成到Eclipse中臼氨,可以幫助Java開發(fā)者使用Eclipse建立、測試芭届、部署J2EE應用储矩。

lombok使用方法?

Lombok能以簡單的注解形式來簡化java代碼褂乍,提高開發(fā)人員的開發(fā)效率持隧。例如開發(fā)中經常需要寫的javabean,都需要花時間去添加相應的getter/setter逃片,也許還要去寫構造器屡拨、equals等方法,而且需要維護褥实,當屬性多時會出現大量的getter/setter方法呀狼,這些顯得很冗長也沒有太多技術含量,一旦修改屬性损离,就容易出現忘記修改對應方法的失誤哥艇。

Lombok能通過注解的方式,在編譯時自動為屬性生成構造器草冈、getter/setter她奥、equals、hashcode怎棱、toString方法哩俭。出現的神奇就是在源碼中沒有getter和setter方法,但是在編譯生成的字節(jié)碼文件中有getter和setter方法拳恋。這樣就省去了手動重建這些代碼的麻煩凡资,使代碼看起來更簡潔些。

為什么使用lombok

由于SpringBoot開發(fā)中充斥各種POJO谬运,使得編碼過程中要寫很多"垃圾"代碼隙赁,如建一個java bean后要寫很多的set,get方法梆暖,這極大的降低了編碼效率伞访,這時,我們就可以利用lombok插件來提高我們的效率轰驳,lombok會利用各種注解來代替繁瑣的代碼厚掷,讓我們敲起代碼來更舒暢弟灼。

lombok的安裝

使用 lombok 是需要安裝的,如果不安裝冒黑,IDE 則無法解析 lombok 注解田绑。以0.11.0版本安裝為例。

1. 雙擊下載下來的 JAR 包安裝 lombok


選擇這種方式安裝的時候提示沒有發(fā)現任何 IDE抡爹,表示沒安裝成功掩驱,可手動安裝的;具體指導請參考官網的視頻冬竟。

2.eclipse / myeclipse 手動安裝 lombok

? ? 1. 將 lombok.jar 復制到 myeclipse.ini / eclipse.ini 所在的文件夾目錄下

? ? 2. 打開 eclipse.ini / myeclipse.ini欧穴,在最后面插入以下兩行并保存:

? ? ? ? -Xbootclasspath/a:lombok.jar

? ? ? ? -javaagent:lombok.jar

? ? 3.重啟 eclipse / myeclipse

lombok的注解

01

@Getter/@Setter

自動產生 getter/setter

02

@ToStrmatching

自動重寫 toString() 方法,會印出所有變量

03

@EqualsmatchAndHashCode

自動生成 equals(Object other) 和 hashcode() 方法诱咏,包括所有非靜態(tài)變量和非 transient 的變量

如果某些變量不想要加進判斷苔可,可以透過 exclude 排除缴挖,也可以使用 of 指定某些字段

04

@NoArgsConstructor, @AllArgsConstructor, @RequirematchdArgsConstructor

這三個很像袋狞,都是在自動生成該類的構造器,差別只在生成的構造器的參數不一樣而已

@NoArgsConstructor?: 生成一個沒有參數的構造器

@AllArgsConstructor?: 生成一個包含所有參數的構造器

這里注意一個 Java 的小坑映屋,當我們沒有指定構造器時苟鸯,Java 編譯器會幫我們自動生成一個沒有任何參數的構造器給該類,但是如果我們自己寫了構造器之后棚点,Java 就不會自動幫我們補上那個無參數的構造器了早处。

然而很多地方(像是 Spring Data JPA),會需要每個類都一定要有一個無參數的構造器瘫析,所以你在加上?@AllArgsConstructor?時砌梆,一定要補上?@NoArgsConstrcutor,不然會有各種坑等著你贬循。

@RequiredArgsConstructor?: 生成一個包含 "特定參數" 的構造器咸包,特定參數指的是那些有加上 final 修飾詞的變量們

補充一下,如果所有的變量都是正常的杖虾,都沒有用 final 修飾的話烂瘫,那就會生成一個沒有參數的構造器

05

@Data

整合包,只要加了 @Data 這個注解奇适,等于同時加了以下注解

@Getter/@Setter

@ToString

@EqualsAndHashCode

@RequiredArgsConstructor

match@Data 是使用頻率最高的 lombok 注解坟比,通常 @Data 會加在一個值可以被更新的對象上,像是日常使用的 DTO 們嚷往、或是 JPA 裡的 Entity 們葛账,就很適合加上 @Data 注解,也就是 @Data for mutable class

match

更多詳細注解

請了解《JAVA全系列》第6階段更新

SSM?框架和項目開發(fā)

目前業(yè)界流行的框架組合:SSM皮仁,多重要我就不強調了籍琳,總之掌握它工作不用愁茄茁。SSM是作為JAVA程序員必備必知必會的技能。LomBok 是一種 Java 實用工具巩割,可用來幫助開發(fā)人員消除 Java 的冗長裙顽,尤其是對于簡單的 Java 對象(POJO)。它通過注釋實現這一目的宣谈。通過在開發(fā)環(huán)境中實現 LomBok愈犹,開發(fā)人員可以節(jié)省構建諸如 hashCode() 和 equals() 這樣的方法以及以往用來分類各種 accessor 和 mutator 的大量時間。

課程大綱

章節(jié)4:Lombok

01_?Lombok_課程介紹

02_?LomBok入門_LomBok概述

03_?LomBok入門_LomBok安裝

04_?LomBok常用注解_@Setter與@Getter

05_?LomBok常用注解_@ToString

06_?LomBok常用注解_@EqualsAndHashCode

07_?LomBok常用注解_@NonNull與Constructor

08_?LomBok常用注解_@Data與@Builder

09_?LomBok常用注解_@Log與val與@Cleanup

10_?Lombok實戰(zhàn)_Mybatis整合LomBok

11_?Lombok_?課程總結

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末闻丑,一起剝皮案震驚了整個濱河市漩怎,隨后出現的幾起案子,更是在濱河造成了極大的恐慌嗦嗡,老刑警劉巖勋锤,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異侥祭,居然都是意外死亡叁执,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門矮冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谈宛,“玉大人,你說我怎么就攤上這事胎署∵郝迹” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵琼牧,是天一觀的道長恢筝。 經常有香客問我,道長巨坊,這世上最難降的妖魔是什么撬槽? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮抱究,結果婚禮上恢氯,老公的妹妹穿的比我還像新娘。我一直安慰自己鼓寺,他們只是感情好勋拟,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妈候,像睡著了一般敢靡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苦银,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天啸胧,我揣著相機與錄音赶站,去河邊找鬼。 笑死纺念,一個胖子當著我的面吹牛贝椿,可吹牛的內容都是我干的。 我是一名探鬼主播陷谱,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼烙博,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烟逊?” 一聲冷哼從身側響起渣窜,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宪躯,沒想到半個月后乔宿,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡访雪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年详瑞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冬阳。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛤虐,死狀恐怖,靈堂內的尸體忽然破棺而出肝陪,到底是詐尸還是另有隱情,我是刑警寧澤刑顺,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布氯窍,位于F島的核電站,受9級特大地震影響蹲堂,放射性物質發(fā)生泄漏狼讨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一柒竞、第九天 我趴在偏房一處隱蔽的房頂上張望政供。 院中可真熱鬧,春花似錦朽基、人聲如沸布隔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衅檀。三九已至,卻和暖如春霎俩,著一層夾襖步出監(jiān)牢的瞬間哀军,已是汗流浹背沉眶。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杉适,地道東北人谎倔。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像猿推,于是被迫代替她去往敵國和親传藏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容