日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解lombok

發(fā)布時間:2024/9/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解lombok 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Lombok是什么

? ? ? ?Lombok項(xiàng)目是一種自動接通你的編輯器和構(gòu)建工具的一個Java庫,是幫助我們編寫getter或者equals方法的一個“工具”,不需要我們再寫getter、setter或者equals方法。其實(shí)他的魅力并不在于幫助我們簡單的編寫對應(yīng)的getter或者更多的方法,還有一點(diǎn)在于,當(dāng)我們的字段發(fā)生改變時,lombok也會對相應(yīng)的getter方法進(jìn)行改變。
引入依賴即可使用:

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

二、為什么要在自己的項(xiàng)目中使用Lombok

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

綜上所述,使用Lombok的兩點(diǎn)主要原因就是:

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

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

三、Lombok實(shí)現(xiàn)原理

? ? ? ? Lombok實(shí)現(xiàn)了JSR 269 API規(guī)范,javac在Java6開始支持這一規(guī)范,只要程序?qū)崿F(xiàn)了該API,就能在javac運(yùn)行的時候得到調(diào)用,那么Lombok在編譯時使用的就是javac,具體流程如下:

? ? ? ?首先是項(xiàng)目的源代碼文件,在經(jīng)過編譯處理以后,lombok會使用自己的抽象語法樹去進(jìn)行注解的匹配,如果在項(xiàng)目中的某一個類中使用了lombok中的注解,那么注解編譯器就會自動去匹配項(xiàng)目中的注解對應(yīng)到在lombok語法樹中的注解文件,并經(jīng)過自動編譯匹配來生成對應(yīng)類中的getter或者setter方法,達(dá)到簡化代碼的目的。

四、Lombok注解詳解

Lombok主要常用的注解有

  • @Data注解:這個注解包含范圍最廣,它包含@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode注解;

  • @NoArgsConstructor注解:生成對應(yīng)的無參構(gòu)造方法;

  • @AllArgsConstructor注解:生成對應(yīng)的有參構(gòu)造方法;

  • @Slf4j注解:在需要打印日志的類中使用,當(dāng)項(xiàng)目中使用了slf4j打印日志框架時使用該注解,會簡化日志的打印流程,只需調(diào)用info方法即可,其實(shí)就是替你生成一個log屬性

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
  • @Log4j:在需要打印日志的類中使用,當(dāng)項(xiàng)目中使用了log4j打印日志框架時使用該注解,會簡化日志的打印流程,只需調(diào)用info方法即可;
  • @Accessors(chain = true) 生成的setter方法中返回用this代替void

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

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

總結(jié)

以上是生活随笔為你收集整理的深入理解lombok的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。