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

Lombok和MapStruct整合詳情

 更新時間:2022年05月22日 08:24:33   作者:??SITING????  
這篇文章主要介紹了Lombok和MapStruct整合詳情,文章基于Java的相關資料展開詳細內(nèi)容,需要的小伙伴可以參考一下

一、流程

1、安裝Lombok插件

(2020.0.4之后版本的IDEA已內(nèi)置Lombok,老版本的請自行下載插件)

2、啟用注解處理器

打開setting -> enable annotation processor (啟用注解處理器)

OK 完事~ 可以使用了  送上常用四件套:

@Data                    //生成Getter 、Setter 、ToString 、ToString 、EqualsAndHashCode
@AllArgsConstructor      //全參構造
@NoArgsConstructor       //無參構造
@SuperBuilder            //構建器,可以鏈式構建對象

可以自行在classes里看生成的代碼:

正常來說到這就結束了,但是。。。在Lombok和MapStruct一起使用時就會有一些沖突

說明一下:

Lombok和MapStruct都是用來簡化Java代碼的組件,它可以通過AnnotationProcessor在編譯時自動生成代碼,簡化了我們?nèi)粘i_發(fā)。

同時,由于是編譯時生成的class文件,從安全性和性能角度考慮也會比運行時的工具好很多,例如BeanUtil.copy()

二、原理

自從Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”規(guī)范,只要程序?qū)崿F(xiàn)了該API,就能在javac運行的時候得到調(diào)用。 lombok本質(zhì)上就是這樣的一個實現(xiàn)了"JSR 269 API"的程序。在使用javac的過程中,它產(chǎn)生作用的具體流程如下:

  • javac對源代碼進行分析,生成一棵抽象語法樹(AST) 
  • 運行過程中調(diào)用實現(xiàn)了"JSR 269 API"的lombok程序 
  • 此時lombok就對第一步驟得到的AST進行處理,找到@Data注解所在類對應的語法樹(AST),然后修改該語法樹(AST),增加getter和setter方法定義的相應樹節(jié)點
  •  javac使用修改后的抽象語法樹(AST)生成字節(jié)碼文件 

三、原因

因為他們他們都是編譯時通過AnnotationProcessor生成的class文件,然后MapStruct會用到對象中的get、set方法,然后get、set方法又需要lombok來生成。所以我們需要空著這兩者工作順序。

四、解決辦法

 lombok 1.18.16之前,添加path

 lombok 1.18.16之后,添加path,必須使用 lombok-mapstruct-binding 插件。

本著用新不用舊的想法我選了第二種

到此這篇關于Lombok和MapStruct整合詳情的文章就介紹到這了,更多相關Lombok和MapStruct內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java SSM配置文件案例詳解

    Java SSM配置文件案例詳解

    這篇文章主要介紹了Java SSM配置文件案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java人機猜拳實現(xiàn)的思路及方法實例

    Java人機猜拳實現(xiàn)的思路及方法實例

    這篇文章主要給大家介紹了關于Java人機猜拳實現(xiàn)的思路及方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Spring中的事件發(fā)布機制原理解析

    Spring中的事件發(fā)布機制原理解析

    這篇文章主要介紹了Spring中的事件發(fā)布機制原理解析,當我們關心spring容器什么時候刷新,或者想在spring容器刷新的時候做一些事情,監(jiān)聽關心的事件,主要就是在ApplicationListener中寫對應的事件,需要的朋友可以參考下
    2023-11-11
  • SpringBoot實現(xiàn)埋點監(jiān)控

    SpringBoot實現(xiàn)埋點監(jiān)控

    本文主要介紹了SpringBoot實現(xiàn)埋點監(jiān)控,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實現(xiàn)

    mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實現(xiàn)

    XML 文件在解析時會將五種特殊字符進行轉(zhuǎn)義,本文主要介紹了mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • java多線程數(shù)據(jù)分頁處理實例講解

    java多線程數(shù)據(jù)分頁處理實例講解

    在本篇內(nèi)容里小編給大家分享了一篇關于java多線程數(shù)據(jù)分頁處理實例講解內(nèi)容,有興趣的朋友們可以學習下。
    2021-01-01
  • 如何利用java實現(xiàn)生成PDF文件

    如何利用java實現(xiàn)生成PDF文件

    前段時間因為相關業(yè)務需求需要后臺生成pdf文件,下面這篇文章主要給大家介紹了關于如何利用java實現(xiàn)生成PDF文件的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • jsp如何獲取Session中的值

    jsp如何獲取Session中的值

    這篇文章主要介紹了jsp如何獲取Session中的值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法

    JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法

    本文主要介紹了JAVA根據(jù)ip地址獲取歸屬地的實現(xiàn)方法,要通過Java程序獲取IP地址對應的城市,需要借助第三方的IP地址庫,下面就來介紹一下,感興趣的可以了解一下
    2023-10-10
  • SWT(JFace) Wizard(Eclipse插件編程必備)

    SWT(JFace) Wizard(Eclipse插件編程必備)

    SWT(JFace)小制作:Wizard(Eclipse插件編程必備)
    2009-06-06

最新評論

仁化县| 普安县| 武清区| 房山区| 兰坪| 西乡县| 泉州市| 南华县| 鄂伦春自治旗| 宁波市| 永善县| 大厂| 汉沽区| 和硕县| 平泉县| 江阴市| 鹤岗市| 新巴尔虎左旗| 云安县| 大姚县| 巢湖市| 固镇县| 项城市| 赤水市| 江北区| 五寨县| 云浮市| 宁晋县| 同德县| 柯坪县| 彰化县| 庄浪县| 渝中区| 嘉禾县| 定远县| 南川市| 游戏| 浮梁县| 武功县| 益阳市| 侯马市|