[發明專利]一種軟件開發輔助工具包無效
| 申請號: | 201010504090.X | 申請日: | 2010-10-11 |
| 公開(公告)號: | CN102214092A | 公開(公告)日: | 2011-10-12 |
| 發明(設計)人: | 周環 | 申請(專利權)人: | 新太科技股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 510665 *** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 開發 輔助 工具包 | ||
技術領域
本發明屬于軟件開發領域,特別涉及一種不引入開源框架支持的敏捷J2EE應用開發場景。
技術背景
J2EE是當前企業應用開發的主流技術之一。為了提高開發人員的工作效率,業界也涌現出各種強大且靈活的輔助性開源框架。通過在J2EE項目中引入這些框架,可以將開發人員從繁鎖的重復代碼中解放出來,從而重點關注于應用業務邏輯的實現。
現在比較知名且有廣泛應用的開源框架有Struts、Spring以及Hibernate,三者可統一簡稱為SSH。它們分別關注于不同的代碼設計層,如Hibernate就是一種典型的ORM框架。它用于實現數據表與對象模型的關系映射,讓開發人員無需再編寫大量的SQL語句來操作后臺數據庫,可直接通過編寫符合Java對象語義的代碼來完成常用的數據處理。Struts則對應于展現層及邏輯控制層,利用它可以使開發人員輕松完成數據對象的自動填充、傳遞、合法性校驗以及界面數據自動綁定等功能。Spring則是一個業務組件的拼裝器,用于實現依賴反轉(IoC)以及對象生命周期管理。
使用開源框架來支持J2EE應用開發固然可以提高生產力,但有些場景下由于公司本身的技術傳統習慣或者具體項目的特別要求,不適合引入框架進行開發。這時,需要一種更輕量的輔助工具包來簡化開發人員的編碼工作,做到脫離主流框架也能地將代碼量降到最低,同時保障代碼的高可維護性。
發明內容
本發明的目的是針對在某些J2EE項目開發中不適合引入已有開源框架作支撐的場景下,提供的一種可顯著提高開發人員編碼效率的輕量級開發輔助工具包。
一、在MVC代碼層次結構中經常會需要數據對象傳遞,此工具包中提供了實現對象自動填值(Copy?Value)功能,可以從ResultSet、Request、Map或其它源數據對象中提取屬性值并完成對目標對象的相應屬性值的自動填充。
如圖1所示,此功能具體采用的技術方案如下:
對目標對象的屬性集進行“反射”(Reflection)遍歷,獲取待填充的屬性名稱集合;
對目標對象的每個屬性進行“標注”(Annotation)分析,獲取自動填充時所需的屬性別名映射表;
對于屬性別名存在規律性差異的情況下,用戶可以注入一個自定義的別名轉義處理類(實現至PropertyAliasMapper),那第二步中生成屬性別名映射表時會優先使用此自定義實現類來完成,不再進行“標注”(Annotation)分析;
對源數據對象的屬性集進行遍歷,并統一轉成Map對象。生成Map對象時會根據上述屬性別名映射表,完成對Map對象keySet的重新生成,以完成目標對象與源數據對象之間待填充屬性的一一對應關系;
最后直接調用BeanUtils.populate(Object?a,Map?b)方法,將參數a
傳入目標對象,參數b則傳入從源數據對象生成的Map對象。
此功能可以大量減少常規代碼中setter/getter方法的出現次數,讓開發人員僅用一行代碼來完成對象屬性值的自動填充,代碼簡潔而實用。
二、針對DAO層的代碼簡化處理,此工具包提供了數據對象的SQL語句自動生成功能,能夠直接將單表對象映射成基本的SQL?DML語句。
如圖2所示,此功能具體采用的技術方案如下:
首先,對數據對象類進行“標注”(Annotation)分析,從而獲取到目標數據庫表名以及主鍵列名信息。然后對數據對象的每個屬性進行“標注”(Annotation)分析,獲取轉換成SQL時所需的屬性別名映射表;
對于屬性別名存在規律性差異的情況下,用戶可以注入一個自定義的別名轉義處理類(實現至PropertyAliasMapper),那上一步中生成屬性別名映射表時會優先使用此自定義實現類來完成,不再進行“標注”(Annotation)分析;
對數據對象的屬性集進行“反射”(Reflection)遍歷,結合第一步獲取的表名及主鍵列名信息生成目標SQL語句。此過程中會掃描對象屬性名與表字段名的映射表,同時會對屬性的數據類型進行差異化處理;
該功能可以很大程度上簡化單表操作SQL語句的編寫工作量,同時支持靈活的對象屬性名與表字段名的映射處理機制。
附圖說明
圖1是本發明的對象數據自動填充功能類圖;
圖2是本發明的SQL語句自動生成功能類圖;
具體實施方式
一,對象自動填值功能代碼示例
例如下代碼:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新太科技股份有限公司,未經新太科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010504090.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:改善哺乳動物的學習和記憶的方法
- 下一篇:一種黃芪延緩衰老咀嚼片及其制備方法





