[發明專利]自動生成Bean拷貝代碼的方法及裝置在審
| 申請號: | 202010300606.2 | 申請日: | 2020-04-16 |
| 公開(公告)號: | CN113535142A | 公開(公告)日: | 2021-10-22 |
| 發明(設計)人: | 陳浩翔 | 申請(專利權)人: | 浙江大搜車軟件技術有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/36;G06F8/33 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 李威 |
| 地址: | 310000 浙江省杭州市余*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 自動 生成 bean 拷貝 代碼 方法 裝置 | ||
本申請提供一種自動生成Bean拷貝代碼的方法及裝置,該方法應用于采用Mapstruct映射器框架的開發設備,可以包括:選取源對象和目的對象,所述Bean拷貝代碼用于將待拷貝數據從所述源對象拷貝至所述目的對象;分別解析所述源對象和所述目的對象的類源文件得到類信息;將所述類信息注入模板文件,以生成對應于所述源對象和所述目的對象的BeanUtils類接口代碼,其中,所述BeanUtils類接口代碼用于編譯生成使用原生getter和setter方法實現的所述Bean拷貝代碼。通過本申請的技術方案,能夠自動生成拷貝性能更高的使用原生getter和setter方法實現的較為簡潔的Bean拷貝代碼,相對提高了項目開發效率。
技術領域
本申請涉及Java軟件編程技術領域,尤其涉及一種自動生成Bean拷貝代碼的方法及裝置。
背景技術
在Java軟件編程中,經常需要在不同項目之間、同一項目的不同層之間進行數據拷貝,這些數據通常位于對象(Bean)中,因此上述拷貝過程又被稱為Bean拷貝。
在相關技術中,一種方法是使用Spring的BeanUtils、Apache的BeanUtils等Bean拷貝工具,但這類Bean拷貝工具通常通過Java反射或者CGLIB動態代理的方式將源對象屬性設置到目標對象中實現拷貝,因此與原生的getter、setter方法相比拷貝性能較低;另一種方法是由用戶定義映射器接口并聲明需要映射的方法,以在編譯階段自動生成接口實現,但該方法需要對待拷貝的每個類都進行編寫接口并增加需要映射的方法,因此在待拷貝的類數量較大的情況下,代碼繁瑣且工作量大,從而降低了項目開發效率。
發明內容
有鑒于此,本申請提供一種自動生成Bean拷貝代碼的方法及裝置,以解決相關技術中存在的問題。
為實現上述目的,本申請提供技術方案如下:
根據本申請的第一方面,提出了一種自動生成Bean拷貝代碼的方法,應用于采用Mapstruct映射器框架的開發設備,所述方法包括:
選取源對象和目的對象,所述Bean拷貝代碼用于將待拷貝數據從所述源對象拷貝至所述目的對象;
分別解析所述源對象和所述目的對象的類源文件得到類信息;
將所述類信息注入模板文件,以生成對應于所述源對象和所述目的對象的BeanUtils類接口代碼,其中,所述BeanUtils類接口代碼用于編譯生成使用原生getter和setter方法實現的所述Bean拷貝代碼。
根據本申請的第二方面,提出了一種自動生成Bean拷貝代碼的裝置,應用于采用Mapstruct映射器框架的開發設備,所述裝置包括:
對象獲取單元,用于選取源對象和目的對象,所述Bean拷貝代碼用于將待拷貝數據從所述源對象拷貝至所述目的對象;
文件解析單元,用于分別解析所述源對象和所述目的對象的類源文件得到類信息;
代碼生成單元,用于將所述類信息注入模板文件,以生成對應于所述源對象和所述目的對象的BeanUtils類接口代碼,其中,所述BeanUtils類接口代碼用于編譯生成使用原生getter和setter方法實現的所述Bean拷貝代碼。
根據本申請的第三方面,提出了一種電子設備,包括:
處理器;
用于存儲處理器可執行指令的存儲器;
其中,所述處理器被配置為實現如上述第一方面方案中任一項所述方法的步驟。
根據本申請的第四方面,提出了一種計算機可讀存儲介質,其上存儲有計算機指令,該指令被處理器執行時實現如上述第一方面方案中任一項所述方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大搜車軟件技術有限公司,未經浙江大搜車軟件技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010300606.2/2.html,轉載請聲明來源鉆瓜專利網。





