Intellij IDEA安裝lombok插件及使用詳解
項(xiàng)目中經(jīng)常使用bean
,entity
等類,絕大部分?jǐn)?shù)據(jù)類類中都需要get
、set
、toString
、equals
和hashCode
方法,雖然eclipse
和idea
開(kāi)發(fā)環(huán)境下都有自動(dòng)生成的快捷方式,但自動(dòng)生成這些代碼后,如果bean
中的屬性一旦有修改、刪除或增加時(shí),需要重新生成或刪除get/set
等方法,給代碼維護(hù)增加負(fù)擔(dān)。而使用了lombok
則不一樣,使用了lombok
的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要編寫或生成get/set
等方法,很大程度上減少了代碼量,而且減少了代碼維護(hù)的負(fù)擔(dān)。故強(qiáng)烈建議項(xiàng)目中使用lombok
,去掉bean中g(shù)et、set、toString、equals和hashCode等方法的代碼。
一、實(shí)戰(zhàn)
1.安裝lombok插件:
具體流程如圖:
1.1
1.2
1.3
2.添加lombok的maven的pom.xml依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
3. 示例代碼Student.java
package com.lombok.demo; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; /** **/ @Setter @Getter @ToString @EqualsAndHashCode public class Student { private String name; private int age; private String male; private String studentNo; }
4. 測(cè)試類LombokTest.java
package com.lombok.demo; import lombok.extern.java.Log; @Log public class LombokTest { public static void main(String[] args) { Student student = new Student(); student.setAge(27); student.setMale("man"); student.setName("lance"); student.setStudentNo("2017"); System.out.println(student.toString()); Student student2 = new Student(); student2.setAge(27); student2.setMale("man"); student2.setName("lance"); student2.setStudentNo("2017"); System.out.println(student.equals(student2)); student2.setStudentNo("2018"); System.out.println(student.equals(student2)); log.info("lombok test"); } }
5. 輸出結(jié)果:
Student(name=lance, age=27, male=man, studentNo=2017)
true
false
lombok test
結(jié)果分析,如果沒(méi)有添加@Setter
注解,則LombokTest
中的student
示例無(wú)法使用setAge()
等方法。使用lombok
之后,省去了許多沒(méi)必要的get,set,toString,equals,hashCode代碼,簡(jiǎn)化了代碼編寫,減少了代碼量。
另外@Data
注解的作用相當(dāng)于 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的合集。
另外@Log
省去了在LombokTest
中添加 getLogger
的如下代碼:
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
看,簡(jiǎn)單吧!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Java中synchronized關(guān)鍵字引出的多種鎖 問(wèn)題
synchronized關(guān)鍵字是JAVA中常用的同步功能,提供了簡(jiǎn)單易用的鎖功能。這篇文章主要介紹了Java中synchronized關(guān)鍵字引出的多種鎖問(wèn)題,需要的朋友可以參考下2019-07-07JAVAEE中用Session簡(jiǎn)單實(shí)現(xiàn)購(gòu)物車功能示例代碼
本篇文章主要介紹了JAVAEE中用Session簡(jiǎn)單實(shí)現(xiàn)購(gòu)物車功能示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03Java Date時(shí)間類型的操作實(shí)現(xiàn)
本文主要介紹Java Date 日期類型,以及Calendar的怎么獲取時(shí)間,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03玩轉(zhuǎn)spring boot 結(jié)合jQuery和AngularJs(3)
玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合jQuery和AngularJs,玩轉(zhuǎn)spring boot,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Java 淺復(fù)制和深復(fù)制的實(shí)例詳解
這篇文章主要介紹了Java 淺復(fù)制和深復(fù)制的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08Spring Boot 中該如何防御計(jì)時(shí)攻擊
這篇文章主要介紹了Spring Boot 中該如何防御計(jì)時(shí)攻擊,幫助大家更好的使用spring boot框架,感興趣的朋友可以了解下2020-09-09IntelliJ?IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟
這篇文章主要介紹了IntelliJ?IDEA如何運(yùn)行SpringBoot項(xiàng)目,步驟一配置maven,步驟二配置JDK環(huán)境,緊接著通過(guò)步驟三檢查數(shù)據(jù)庫(kù)的配置,最后一步數(shù)據(jù)庫(kù)連接,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08@Transactional跟@DS動(dòng)態(tài)數(shù)據(jù)源注解沖突的解決
這篇文章主要介紹了@Transactional跟@DS動(dòng)態(tài)數(shù)據(jù)源注解沖突的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09