最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Lombok注解不起作用的問題

 更新時間:2021年08月03日 09:11:27   作者:IT學習日記  
這篇文章主要介紹了解決Lombok注解不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Lombok注解不起作用

場景:

減少實體類中如Getter,Setter方法的書寫

原因:

lombok是一個第三方插件,我們使用時需要進行兩個步驟(兩個步驟缺一不可):

1:引入lombok依賴

2: 安裝lombok插件

作用:

Lombok是一個第三方插件,通過它我們可以直接書寫注解來代替原來的getter,setter,toString等方法。

深入理解Lombok

說道Lombok,可能會鮮為人知。但是在實際的開發(fā)中,它起到了很大的作用,話不多說,直入正題:

一、Lombok是什么

現在看一下Lombok官方對其進行的解釋:Lombok官網:https://projectlombok.org

第一句話,Lombok項目是一種自動接通你的編輯器和構建工具的一個Java庫。接著,不用再一次寫額外的getter或者equals方法。翻譯到這里其實就可以,后面是對Lombok早期應用的介紹。通過這兩句話不難理解lombok其實就是幫助我們編寫getter或者equals方法的一個“工具”。其實他的魅力并不在于幫助我們簡單的編寫對應的getter或者更多的方法,還有一點在于,當我們的字段發(fā)生改變時,lombok也會對相應的getter方法進行改變。

二、為什么要在自己的項目中使用Lombok

要回答這個問題,僅僅知道什么是Lombok是不夠的。在講解原理之前我想再提一點 ,這也是為什么要使用Lombok的關鍵所在:根據Lombok的使用規(guī)則,如果想要使用Lombok就需要刪除在項目中(JavaBean)存在的已經生成的getter方法setter方法以及equals和hash方法,當然Lombok也提供了對打印日志的處理。這樣在使用Lombok以后就會大大減少項目中的代碼量,同時由于Lombok有自動修改的功能,這也提供了項目中代碼的執(zhí)行效率。

綜上所述,使用Lombok的兩點主要原因就是:

(1)、簡化冗余的JavaBean代碼;

(2)、大大提高JavaBean中方法的執(zhí)行效率;

三、如何使用LomBok

在Lombok的官網中,有一個install選項,我們點開它會看到多種安裝方式:

大家可以根據自己的項目需求來選擇使用哪種方式,這里以Maven為例:

點擊Maven會看到一組坐標:

根據它的提示我們將這一組坐標添加到我們的pom文件中:

添加進去以后點擊import change,等待Idea把jar包下載完就可以在項目中使用了。

四、Lombok實現原理

Lombok實現了JSR 269 API規(guī)范,javac在Java6開始支持這一規(guī)范,只要程序實現了該API,就能在javac運行的時候得到調用,那么Lombok在編譯時使用的就是javac,具體流程如下:

首先是項目的源代碼文件,在經過編譯處理以后,lombok會使用自己的抽象語法樹去進行注解的匹配,如果在項目中的某一個類中使用了lombok中的注解,那么注解編譯器就會自動去匹配項目中的注解對應到在lombok語法樹中的注解文件,并經過自動編譯匹配來生成對應類中的getter或者setter方法,達到簡化代碼的目的。執(zhí)行順序就如上圖的疊放順序。

五、Lombok注解詳解

Lombok主要常用的注解有:

@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我們一個一個來看:

  • @Data注解:在JavaBean或類JavaBean中使用,這個注解包含范圍最廣,它包含getter、setter、NoArgsConstructor注解,即當使用當前注解時,會自動生成包含的所有方法;
  • @getter注解:在JavaBean或類JavaBean中使用,使用此注解會生成對應的getter方法;
  • @setter注解:在JavaBean或類JavaBean中使用,使用此注解會生成對應的setter方法;
  • @NoArgsConstructor注解:在JavaBean或類JavaBean中使用,使用此注解會生成對應的無參構造方法;
  • @AllArgsConstructor注解:在JavaBean或類JavaBean中使用,使用此注解會生成對應的有參構造方法;
  • @ToString注解:在JavaBean或類JavaBean中使用,使用此注解會自動重寫對應的toStirng方法;
  • @EqualsAndHashCode注解:在JavaBean或類JavaBean中使用,使用此注解會自動重寫對應的equals方法和hashCode方法;
  • @Slf4j:在需要打印日志的類中使用,當項目中使用了slf4j打印日志框架時使用該注解,會簡化日志的打印流程,只需調用info方法即可;
  • @Log4j:在需要打印日志的類中使用,當項目中使用了log4j打印日志框架時使用該注解,會簡化日志的打印流程,只需調用info方法即可;

在使用以上注解需要處理參數時,處理方法如下(以@ToString注解為例,其他注解同@ToString注解):

@ToString(exclude="column")

意義:排除column列所對應的元素,即在生成toString方法時不包含column參數;

@ToString(exclude={"column1","column2"})

意義:排除多個column列所對應的元素,其中間用英文狀態(tài)下的逗號進行分割,即在生成toString方法時不包含多個column參數;

@ToString(of="column")

意義:只生成包含column列所對應的元素的參數的toString方法,即在生成toString方法時只包含column參數;;

@ToString(of={"column1","column2"})

意義:只生成包含多個column列所對應的元素的參數的toString方法,其中間用英文狀態(tài)下的逗號進行分割,即在生成toString方法時只包含多個column參數;

六、使用Lombok可能需要注意的地方

(1)、當你的IDE是Idea時,要注意你的Idea是支持Lombok的,如果不支持請更換2017版本嘗試。

(2)、在使用Lombok時,你的編輯器可能會報錯,這時請在你的IDE中安裝Lombok插件(如果使用的Idea則直接搜索Lombok插件,選擇星級最高的,直接安裝就是,其他Ide類同)。

(3)、參數的處理往往都是根據項目需求來進行,請妥善處理參數。

(4)、如果你無法訪問Lombok官網,你可以從這篇博文中將Maven坐標照著自己打進去,或者你也可以訪問Maven的中央倉庫搜索Lombok,將Maven坐標復制進去即可。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java實現一個簡單TCPSocket聊天室功能分享

    java實現一個簡單TCPSocket聊天室功能分享

    這篇文章主要為大家分享了java實現的一個簡單TCPSocket聊天室功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • java 內部類(匿名類,匿名對象,靜態(tài)內部類)詳解及實例

    java 內部類(匿名類,匿名對象,靜態(tài)內部類)詳解及實例

    這篇文章主要介紹了java 內部類詳解及實例代碼的相關資料,需要的朋友可以參考下
    2016-12-12
  • SpringBoot整合Minio實現圖片上傳功能

    SpringBoot整合Minio實現圖片上傳功能

    Minio是一款開源的對象存儲服務器,它提供了一個云原生的、高性能的、易于擴展的文件系統(tǒng)接口,用于存儲和檢索任意大小的數據,本文將給大家介紹SpringBoot整合Minio實現圖片上傳功能,需要的朋友可以參考下
    2024-08-08
  • Spring?Boot?中的?@HystrixCommand?注解原理及使用方法

    Spring?Boot?中的?@HystrixCommand?注解原理及使用方法

    通過使用 @HystrixCommand 注解,我們可以輕松地實現對方法的隔離和監(jiān)控,從而提高系統(tǒng)的可靠性和穩(wěn)定性,本文介紹了Spring Boot 中的@HystrixCommand注解是什么,其原理以及如何使用,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Spring Boot實現圖片上傳/加水印一把梭操作實例代碼

    Spring Boot實現圖片上傳/加水印一把梭操作實例代碼

    這篇文章主要給大家介紹了關于Spring Boot實現圖片上傳/加水印一把梭操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 簡述Java異步上傳文件的三種方式

    簡述Java異步上傳文件的三種方式

    這篇文章主要為大家詳細介紹了Java異步上傳文件的三種方式,感興趣的小伙伴們可以參考一下
    2016-03-03
  • springboot整合SSE技術開發(fā)小結

    springboot整合SSE技術開發(fā)小結

    本文主要介紹了springboot整合SSE技術開發(fā)小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • Java實現簡單的郵件發(fā)送功能

    Java實現簡單的郵件發(fā)送功能

    這篇文章主要為大家詳細介紹了Java實現簡單的郵件發(fā)送功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 關于ThreadLocal和InheritableThreadLocal解析

    關于ThreadLocal和InheritableThreadLocal解析

    這篇文章主要介紹了關于ThreadLocal和InheritableThreadLocal解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 使用spring+maven不同環(huán)境讀取配置方式

    使用spring+maven不同環(huán)境讀取配置方式

    這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

孟州市| 双峰县| 宁陵县| 额济纳旗| 贺兰县| 交城县| 隆尧县| 建阳市| 茌平县| 冷水江市| 宜城市| 乐东| 阿荣旗| 广西| 马公市| 海原县| 长治县| 旅游| 大港区| 泸定县| 绥江县| 嘉义县| 大兴区| 开封市| 柳州市| 商洛市| 交口县| 中超| 利川市| 疏附县| 天峻县| 松阳县| 滁州市| 大关县| 珠海市| 禄劝| 南郑县| 西贡区| 霍州市| 山东省| 德清县|