欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

提升java開發(fā)效率工具lombok使用爭(zhēng)議

 更新時(shí)間:2022年07月18日 16:36:00   作者:honeymoose  
這篇文章主要介紹了提升java開發(fā)效率工具lombok使用爭(zhēng)議到底該不該使用的分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

對(duì)使用 lombok 還是有很多爭(zhēng)議的,有些公司不建議使用,有些公司又大量使用。

我們的想法是:可以使用,但是不要濫用。

什么是 lombok

Lombok是 一種Java™實(shí)用工具,可用來幫助開發(fā)人員消除Java的冗長(zhǎng)代碼,尤其是對(duì)于簡(jiǎn)單的Java對(duì)象(POJO) 。 它通過注釋實(shí)現(xiàn)這一目的。 通過在開發(fā)環(huán)境中實(shí)現(xiàn)Lombok,開發(fā)人員可以節(jié)省構(gòu)建諸如hashCode() 和 equals()這樣的方法以及以往用來分類各種 accessor和 mutator的大量時(shí)間。

我們都知道使用 Java 定義對(duì)象的時(shí)候都會(huì)用到 Getter 和 Setter 方法。

雖然我們有工具幫我們快速生成這些方法,但是實(shí)際上還是有點(diǎn)麻煩。

lombok 就可以通過一行注釋來實(shí)現(xiàn)所有的這些方法。

lombok 可以做的不僅僅是這個(gè),還可以通過注釋 @Slf4j 來幫你實(shí)現(xiàn)自動(dòng)定義 log。

我們就不用寫冗長(zhǎng)的

private static final Logger logger = LoggerFactory.getLogger(ListingProcessor.class)

而且針對(duì) log 的類不同,這句話也是不同的。

如何使用

如果使用 Maven 的話,直接添加下面的依賴到 pom 文件中就可以了。

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>provided</scope>
        </dependency>

IDEA 的插件是自動(dòng)安裝的,你直接啟用就可以了。

IDEA 會(huì)提示你是不是在當(dāng)前的項(xiàng)目中啟用 lombok,你可以選擇啟用或者不啟用。

隨后就是在代碼中使用注釋就可以了。

如下面的代碼,我們直接簡(jiǎn)化使用注解就可以了。

需要注意的是,使用 log 來標(biāo)記日志。

這樣看起來,代碼就優(yōu)雅很多,也能減少不少不需要的代碼。

lombok 的原理和濫用

Java 程序的解析分為:運(yùn)行時(shí)解析編譯時(shí)解析。

通常我們通過反射獲取類、方法、注解和成員變量就是運(yùn)行時(shí)解析。但是這種方式效率其實(shí)不高,要在程序運(yùn)行起來才能解析。

這時(shí)候編譯時(shí)解析就體現(xiàn)出它的價(jià)值了。

編譯時(shí)解析又分為:注解處理器(Annotation Processing Tool)和JSR 269 插入式注解處理器(Pluggable Annotation Processing API)

第一種處理器它最早是在 JDK 1.5 與注解(Annotation) 一起引入的,它是一個(gè)命令行工具,能夠提供構(gòu)建時(shí)基于源代碼對(duì)程序結(jié)構(gòu)的讀取功能,能夠通過運(yùn)行注解處理器來生成新的中間文件,進(jìn)而影響編譯過程。

不過在JDK 1.8以后,第一種處理器被淘汰了,取而代之的是第二種處理器。

這樣就導(dǎo)致了 lombok 對(duì) JDK 的兼容性出現(xiàn)了一些問題。

當(dāng)你更換 JDK 版本的時(shí)候,lombok 的版本也需要一并進(jìn)行更換,否則你就會(huì)出現(xiàn)錯(cuò)誤。

如果下面文章討論的錯(cuò)誤: Java 項(xiàng)目編譯錯(cuò)誤 Error:java: java.lang.ExceptionInInitializer

就是因?yàn)?JDK 不兼容的問題導(dǎo)致的整個(gè)項(xiàng)目無法編譯。

如果上游系統(tǒng)中提供的fegin client 使用了 lombok,那么下游系統(tǒng)必須也使用 lombok,否則會(huì)報(bào)錯(cuò),上下游系統(tǒng)構(gòu)成了強(qiáng)依賴。

如果你需要對(duì) getter 或者 setter 方法進(jìn)行一些編碼的話,lombok 也不是不能用,但是會(huì)有一點(diǎn)點(diǎn)的學(xué)習(xí)曲線。

綜合上面的考慮, lombok 還是可以用的,但是不要嘗試所有地方都用 lombok,避免濫用。

哪怕就是為了使用 @Slf4j 來考慮的話,也是值得的。

以上就是提升java開發(fā)效率工具lombok使用爭(zhēng)議的詳細(xì)內(nèi)容,更多關(guān)于java開發(fā)工具lombok的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • drools中then部分的寫法(推薦)

    drools中then部分的寫法(推薦)

    本文介紹一下drools中then部分的寫法,以及一些內(nèi)置的方法,比如insert/delete/modify等等。同時(shí)也介紹一下rule的繼承,和在when中實(shí)現(xiàn)if else if?等操作,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • Java冒泡排序(Bubble Sort)實(shí)例講解

    Java冒泡排序(Bubble Sort)實(shí)例講解

    冒泡排序的原理:假設(shè)要求的數(shù)組是正序,兩兩進(jìn)行比較,如果前一個(gè)書比后一個(gè)數(shù)小,位置不變。如果前一個(gè)數(shù)比后一個(gè)數(shù)大,位置互換,再跟后一個(gè)數(shù)進(jìn)行比較,直到最后。就是逐步把大數(shù)送到最后,下面來個(gè)實(shí)例給大家看看
    2013-11-11
  • Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)單的小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng),文中采用到的技術(shù)有JSP、Servlet?、JDBC、Ajax等,感興趣的可以動(dòng)手試一試
    2022-03-03
  • Java spring的三種注入方式詳解流程

    Java spring的三種注入方式詳解流程

    Spring框架由Rod Johnson開發(fā),2004年發(fā)布了Spring框架的第一版。Spring是一個(gè)從實(shí)際開發(fā)中抽取出來的框架,因此它完成了大量開發(fā)中的通用步驟,留給開發(fā)者的僅僅是與特定應(yīng)用相關(guān)的部分,從而大大提高了企業(yè)應(yīng)用的開發(fā)效率
    2021-10-10
  • Java中的RPC框架Dubbo原理和機(jī)制詳解

    Java中的RPC框架Dubbo原理和機(jī)制詳解

    這篇文章主要介紹了Java中的RPC框架Dubbo原理和機(jī)制詳解,Dubbo 是一款Java RPC框架,致力于提供高性能的 RPC 遠(yuǎn)程服務(wù)調(diào)用方案,作為主流的微服務(wù)框架之一,Dubbo 為開發(fā)人員帶來了非常多的便利,需要的朋友可以參考下
    2024-01-01
  • Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用

    Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用

    所謂反射,可以理解為在運(yùn)行時(shí)期獲取對(duì)象類型信息的操作,本文將詳細(xì)介紹,需要的朋友可以參考下
    2012-12-12
  • mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決

    mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決

    這篇文章主要介紹了mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • JAVA API 實(shí)用類 String詳解

    JAVA API 實(shí)用類 String詳解

    這篇文章主要介紹了java String的深入理解的相關(guān)資料,希望通過本文大家能理解String的用法,需要的朋友可以參考下
    2021-10-10
  • 解讀nextLine().split(“[\\s]“)的意思

    解讀nextLine().split(“[\\s]“)的意思

    這篇文章主要介紹了解讀nextLine().split(“[\\s]“)的意思,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密

    SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密

    本文主要介紹了SpringBoot實(shí)現(xiàn)application.yml文件敏感信息加密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評(píng)論