Lombok插件安裝(IDEA)及配置jar包使用詳解
點(diǎn)擊進(jìn)入Lombok官網(wǎng)下載Lombok jar包
使用Lombok可能需要注意的地方
(1)、當(dāng)你的IDE是Idea時(shí),要注意你的Idea是支持Lombok的,如果不支持請(qǐng)更換高版本嘗試(這里采用2018 3.3)。
(2)、在使用Lombok時(shí),你的編輯器可能會(huì)報(bào)錯(cuò),這時(shí)請(qǐng)?jiān)谀愕腎DE中安裝Lombok插件(如果使用的Idea則直接搜索Lombok插件,選擇星級(jí)最高的,直接安裝就是,其他Ide類(lèi)同)。
(3)、參數(shù)的處理往往都是根據(jù)項(xiàng)目需求來(lái)進(jìn)行,請(qǐng)妥善處理參數(shù)。
(4)、如果你無(wú)法訪問(wèn)Lombok官網(wǎng),你可以從這篇博文中將Maven坐標(biāo)照著自己打進(jìn)去,或者你也可以訪問(wèn)Maven的中央倉(cāng)庫(kù)搜索Lombok,將Maven坐標(biāo)復(fù)制進(jìn)去即可。
1、Lombok簡(jiǎn)介
Lombok能以簡(jiǎn)單的注解形式來(lái)簡(jiǎn)化java代碼,提高開(kāi)發(fā)人員的開(kāi)發(fā)效率。例如開(kāi)發(fā)中經(jīng)常需要寫(xiě)的javabean,都需要花時(shí)間去添加相應(yīng)的getter/setter,也許還要去寫(xiě)構(gòu)造器、equals等方法,而且需要維護(hù),當(dāng)屬性多時(shí)會(huì)出現(xiàn)大量的getter/setter方法,這些顯得很冗長(zhǎng)也沒(méi)有太多技術(shù)含量,一旦修改屬性,就容易出現(xiàn)忘記修改對(duì)應(yīng)方法的失誤。
Lombok能通過(guò)注解的方式,在編譯時(shí)自動(dòng)為屬性生成構(gòu)造器、getter/setter、equals、hashcode、toString等方法。出現(xiàn)的神奇就是在源碼中沒(méi)有g(shù)etter和setter方法,但是在編譯生成的字節(jié)碼文件中有g(shù)etter和setter方法。這樣就省去了手動(dòng)重建這些代碼的麻煩,使代碼看起來(lái)更簡(jiǎn)潔些。
使用Lombok的原因:
根據(jù)Lombok的使用規(guī)則,如果想要使用Lombok就需要?jiǎng)h除在項(xiàng)目中(JavaBean)存在的已經(jīng)生成的getter方法setter方法以及equals和hash方法,當(dāng)然Lombok也提供了對(duì)打印日志的處理。這樣在使用Lombok以后就會(huì)大大減少項(xiàng)目中的代碼量,同時(shí)由于Lombok有自動(dòng)修改的功能,這也提供了項(xiàng)目中代碼的執(zhí)行效率。
綜上所述,使用Lombok的兩點(diǎn)主要原因就是:
(1)、簡(jiǎn)化冗余的JavaBean代碼。
(2)、大大提高JavaBean中方法的執(zhí)行效率。
2、IDEA中安裝Lombok插件
選擇【File】-> 【Settings】->【Plugins】 –> 輸入Lombok,按回車(chē)鍵進(jìn)行搜索,單擊【Install】進(jìn)行安裝,安裝完成后點(diǎn)擊【Apply】和【OK】,然后重啟IDEA即可安裝成功。
注意:在重啟前建議勾選結(jié)開(kāi)啟【Annotation Processors】下的【Enable annotation processing】(Ctrl+Shift+A鍵,輸入Annotation Processors回車(chē)搜索即可找到該選項(xiàng))。


3、使用LomBok
在Lombok的官網(wǎng)有一個(gè)install選項(xiàng),我們點(diǎn)開(kāi)它會(huì)看到多種安裝方式,可以根據(jù)自己的項(xiàng)目需求來(lái)選擇使用哪種方式,這里以Maven為例:
點(diǎn)擊Maven會(huì)看到一組坐標(biāo):

根據(jù)它的提示我們將這一組坐標(biāo)添加到我們的pom文件中:
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency> </dependencies>
添加進(jìn)去以后點(diǎn)擊import change,等待Idea把jar包下載完就可以在項(xiàng)目中使用了。
4、Lombok常用注解詳解
@Data注解:在JavaBean或類(lèi)JavaBean中使用,這個(gè)注解包含范圍最廣,它包含getter、setter、NoArgsConstructor注解,即當(dāng)使用當(dāng)前注解時(shí),會(huì)自動(dòng)生成包含的所有方法;
@getter注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)生成對(duì)應(yīng)的getter方法;
@setter注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)生成對(duì)應(yīng)的setter方法;
@NoArgsConstructor注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)生成對(duì)應(yīng)的無(wú)參構(gòu)造方法;
@AllArgsConstructor注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)生成對(duì)應(yīng)的有參構(gòu)造方法;
@ToString注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)自動(dòng)重寫(xiě)對(duì)應(yīng)的toStirng方法;
@EqualsAndHashCode注解:在JavaBean或類(lèi)JavaBean中使用,使用此注解會(huì)自動(dòng)重寫(xiě)對(duì)應(yīng)的equals方法和hashCode方法;
@Slf4j:在需要打印日志的類(lèi)中使用,當(dāng)項(xiàng)目中使用了slf4j打印日志框架時(shí)使用該注解,會(huì)簡(jiǎn)化日志的打印流程,只需調(diào)用info方法即可;
@Log4j:在需要打印日志的類(lèi)中使用,當(dāng)項(xiàng)目中使用了log4j打印日志框架時(shí)使用該注解,會(huì)簡(jiǎn)化日志的打印流程,只需調(diào)用info方法即可;
在使用以上注解需要處理參數(shù)時(shí),處理方法如下(以@ToString注解為例,其他注解同@ToString注解):
@ToString(exclude="column")
意義:排除column列所對(duì)應(yīng)的元素,即在生成toString方法時(shí)不包含column參數(shù);
@ToString(exclude={"column1","column2"})
意義:排除多個(gè)column列所對(duì)應(yīng)的元素,其中間用英文狀態(tài)下的逗號(hào)進(jìn)行分割,即在生成toString方法時(shí)不包含多個(gè)column參數(shù);
@ToString(of="column")
意義:只生成包含column列所對(duì)應(yīng)的元素的參數(shù)的toString方法,即在生成toString方法時(shí)只包含column參數(shù);;
@ToString(of={"column1","column2"})
意義:只生成包含多個(gè)column列所對(duì)應(yīng)的元素的參數(shù)的toString方法,其中間用英文狀態(tài)下的逗號(hào)進(jìn)行分割,即在生成toString方法時(shí)只包含多個(gè)column參數(shù);
5、示例代碼(僅簡(jiǎn)單舉一個(gè)使用例子)
不使用Lombok(傳統(tǒng)方法)
package com.user;
public class UserInfo {
private String userid;
private String username;
private String userpass;
private String userphone;
private String useremail;
private String usercard;
private String useraddress;
@Override
public String toString() {
return "UserInfo{" +
"userid='" + userid + '\'' +
", username='" + username + '\'' +
", userpass='" + userpass + '\'' +
", userphone='" + userphone + '\'' +
", useremail='" + useremail + '\'' +
", usercard='" + usercard + '\'' +
", useraddress='" + useraddress + '\'' +
'}';
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public String getUserphone() {
return userphone;
}
public void setUserphone(String userphone) {
this.userphone = userphone;
}
public String getUseremail() {
return useremail;
}
public void setUseremail(String useremail) {
this.useremail = useremail;
}
public String getUsercard() {
return usercard;
}
public void setUsercard(String usercard) {
this.usercard = usercard;
}
public String getUseraddress() {
return useraddress;
}
public void setUseraddress(String useraddress) {
this.useraddress = useraddress;
}
}
使用Lombok
package com.user;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class UserInfo {
private String userid;
private String username;
private String userpass;
private String userphone;
private String useremail;
private String usercard;
private String useraddress;
}
只給單個(gè)參數(shù)添加
package com.user;
import lombok.Getter;
import lombok.Setter;
public class UserInfo {
@Getter@Setter private String userid;
private String username;
private String userpass;
private String userphone;
private String useremail;
private String usercard;
private String useraddress;
}
到此這篇關(guān)于Lombok插件安裝(IDEA)及配置jar包使用詳解的文章就介紹到這了,更多相關(guān)Lombok插件安裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題(推薦)
- 關(guān)于idea2020.3升級(jí)lombok不能使用的問(wèn)題
- 解決IDEA 2020.3 lombok失效問(wèn)題
- Lombok為啥這么牛逼?SpringBoot和IDEA官方都要支持它
- 升級(jí)IDEA后Lombok不能使用的解決方法
- idea 在springboot中使用lombok插件的方法
- idea中l(wèi)ombok的用法
- idea中的lombok不生效的四種解決方法
- IDEA編寫(xiě)SpringBoot項(xiàng)目時(shí)使用Lombok報(bào)錯(cuò)“找不到符號(hào)”的原因和解決
相關(guān)文章
Python面向?qū)ο缶幊讨?lèi)的運(yùn)算
這篇文章主要介紹了Python面向?qū)ο缶幊讨?lèi)的運(yùn)算,運(yùn)算即Operation是操作邏輯的抽象,運(yùn)算體現(xiàn)一種操作邏輯,在廣義角度來(lái)說(shuō)任何程序都是一種運(yùn)算,接下來(lái)看看文章具體內(nèi)容及各種舉例說(shuō)明,希望對(duì)你有所幫助2021-11-11
Python GUI之tkinter窗口視窗教程大集合(推薦)
這篇文章主要介紹了Python GUI之tkinter窗口視窗教程大集合,看這一篇教程足了,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Python 棧實(shí)現(xiàn)的幾種方式及優(yōu)劣詳解
這篇文章主要為大家介紹了Python 棧實(shí)現(xiàn)的幾種方式及優(yōu)劣詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
一文帶你探索Python中的eventlet通信機(jī)制
這篇文章主要為大家詳細(xì)介紹了Python中的eventlet通信機(jī)制的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們深入了解Python有一定幫助,需要的可以參考一下2023-06-06
Python通過(guò)socketserver處理多個(gè)鏈接
這篇文章主要介紹了Python通過(guò)socketserver處理多個(gè)鏈接,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python實(shí)現(xiàn)的遠(yuǎn)程登錄windows系統(tǒng)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遠(yuǎn)程登錄windows系統(tǒng)功能,結(jié)合實(shí)例形式分析了Python基于wmi模塊的遠(yuǎn)程連接與進(jìn)程操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06
django 認(rèn)證類(lèi)配置實(shí)現(xiàn)
本文主要介紹了django 認(rèn)證類(lèi)配置實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
python3中利用filter函數(shù)輸出小于某個(gè)數(shù)的所有回文數(shù)實(shí)例
今天小編就為大家分享一篇 python3中利用filter函數(shù)輸出小于某個(gè)數(shù)的所有回文數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11

