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_?課程總結