專利名稱:基于j2ee架構(gòu)的代碼生成裝置的制作方法
技術(shù)領域:
本發(fā)明涉及計算機技術(shù)領域,具體而言,涉及一種基于J2EE架構(gòu)的代碼生成裝置。
背景技術(shù):
在軟件開發(fā)行業(yè),每個公司在長期的軟件開發(fā)過程中,都形成了一整套的、完善的 開發(fā)平臺,在這個規(guī)范模板中進行維護和升級,大大提高了公司的規(guī)范,同時降低了開發(fā)成 本。對軟件開發(fā)而言,每個項目都要經(jīng)過需求,設計,開發(fā),測試這四個流程,在項目成 本核算時,往往人力成本占居首位,而人力成本主要體現(xiàn)在軟件開發(fā)人員的投入,而且成本
很1 。對于開發(fā)的過程中,均會形成一個相應的開發(fā)平臺,尤其是采用面向?qū)ο笏枷氲?語言開發(fā)的平臺,如Java、C++等語言,并且軟件開發(fā)人員會依托該平臺,對前期定義好的 規(guī)范進行規(guī)律的、繁重的、定型模式開發(fā),對于這部分定性模式的開發(fā),通常會占用開放人 員很多的時間,導致整個項目的開發(fā)周期長,開發(fā)效率低下的問題。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種基于J2EE架構(gòu)的代碼生成裝置,其能夠解決對于軟件業(yè)務 定性模式的開發(fā),占用開放人員很多的時間,導致整個項目的開發(fā)周期長,開發(fā)效率低下的 問題。根據(jù)本發(fā)明的一個方面,提供一種基于J2EE架構(gòu)的代碼生成裝置,包括屬性設置單元,用于按照接收的參數(shù)來設置文件屬性,生成相應的配置文件并輸 出;引擎單元,用于獲取所述配置文件并解析,按照解析出的所述文件屬性選擇相應 的代碼模塊,并生成代碼文件。優(yōu)選地,還包括輸入輸出單元,用于將來自用戶的參數(shù)發(fā)送至所述屬性設置單元,輸出所述引擎 單元生成的代碼文件。優(yōu)選地,所述屬性設置單元包括命名屬性模塊,用于按照用戶的參數(shù),設置文件名稱規(guī)則和文件內(nèi)的變量名稱規(guī) 則,生成相應的可擴展標記語言XML配置文件并輸出;頁面屬性模塊,用于接收用戶的參數(shù),設置顯示給用戶的頁面形狀、頁面上的控件 類型、控件顏色和控件布局,生成相應的層疊樣式表CSS配置文件并輸出;數(shù)據(jù)庫模塊,用于接收用戶的參數(shù),設置所述頁面上顯示的表結(jié)構(gòu)、字段屬性、主 鍵屬性、索引屬性,生成相應的XML配置文件并輸出。優(yōu)選地,所述數(shù)據(jù)庫模塊包括
表名屬性子模塊,用于接收用戶的參數(shù),設置所述表的命名規(guī)則,生成相應的XML 配置文件并輸出;字段屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)每個字段的內(nèi)數(shù)據(jù)類型和顯示 規(guī)則,生成相應的XML配置文件并輸出;主鍵屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)主鍵的生成規(guī)則,生成相應的 XML配置文件并輸出;索引屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)的索引,生成相應的XML配置文 件并輸出。優(yōu)選地,還包括數(shù)據(jù)庫鏈接模塊,用于將所述數(shù)據(jù)庫模塊生成的XML配置文件存儲到數(shù)據(jù)庫中;所述引擎單元,用于通過所述數(shù)據(jù)庫獲取所述XML配置文件。優(yōu)選地,所述引擎單元包括數(shù)據(jù)庫組件,用于接收用戶的參數(shù),設置連接所述數(shù)據(jù)庫配置文件;解析屬性組件,用于獲取所述數(shù)據(jù)庫保存的XML配置文件、所述命名屬性模塊生 成的XML配置文件和所述頁面屬性模塊生成的CSS配置文件并解析;代碼生成組件,用于按照解析出的所述文件屬性選擇相應的代碼模塊,并生成代 碼文件。優(yōu)選地,所述引擎單元,還包括配置文件組件,用于將代碼生成組件生成的代碼文件配置到預定義的文件中。本發(fā)明的裝置采用組件化的結(jié)構(gòu),通過用戶設置的參數(shù),可自動生成相應的代碼 文件,由用戶配置到平臺;通過本發(fā)明的裝置,節(jié)省了用戶編輯代碼文件的時間,提高了用 戶的工作效率,降低整個項目的開發(fā)周期。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中圖1示出了本發(fā)明裝置實施例的結(jié)構(gòu)圖;圖2示出了實施例中文件之間的關系圖。
具體實施例方式下面將參考附圖并結(jié)合實施例,來詳細說明本發(fā)明。本發(fā)明的裝置實施例采用面向?qū)ο笏枷朐O計,其結(jié)構(gòu)圖可參見圖1,包括屬性設置單元11,用于按照接收的參數(shù)設置文件屬性,包括文件的名稱及文件內(nèi) 容、類型等,生成相應的配置文件并輸出;引擎單元12,用于獲取所述配置文件并解析,按照所述文件屬性選擇相應的代碼 模塊并生成代碼文件;輸入輸出單元13,用于將來自用戶的參數(shù)發(fā)送至所述屬性設置單元,輸出所述代 碼文件。用戶通過外設向?qū)傩栽O置單元輸入設置參數(shù),設置文件的各種屬性,包括命名屬性、數(shù)據(jù)庫屬性、頁面屬性等。屬性設置單元11內(nèi)的各個模塊按照參數(shù)執(zhí)行相應的屬性設 置,分別包括命名屬性模塊112,用于接收用戶的參數(shù)定義命名規(guī)范(變量規(guī)范的定義、文件的 定義、java包的定義)并設置。定義不同數(shù)據(jù)類型的變量命名,數(shù)據(jù)類型包括,整型、字符型、日期型、浮點型(帶 有小數(shù)點型的)。主要定義變量的前綴和首字母的大小寫,便于生成代碼時按此規(guī)則命名變 量。當配置完畢時生成對應的XML配置文件。定義java類文件和jsp文件的名稱命名規(guī)則,每個文件名稱固定、且與數(shù)據(jù)庫14 的表名命名相同,首字母大小寫由此處定義。當配置完畢時生成對應的XML配置文件。定義java包的命名,每一模塊會在規(guī)范中對應一個java的總包(例如,com. order, cc. app. user),每個總包下都會有六個子包,子包無需定義,總包下的子包是根據(jù)平 臺屬性生成的,各個類之間的關系可參見圖2,主要包括R)rm、acti0n、serivce、da0、ida0、 entity,每個子包各自負責代碼實現(xiàn)業(yè)務的功能,說明如下action jsp提交時對應的方法入口。form jsp與后臺數(shù)據(jù)的緩沖。entity 相關數(shù)據(jù)對象的實體文件。dao 所有的數(shù)據(jù)庫操作都要在此類中完成,禁止數(shù)據(jù)庫sql在其他類中出現(xiàn)。idao :dao 的接口類。Serivce 業(yè)務邏輯在此類中實現(xiàn),與dao掛鉤。在生成某個模塊java類文件時,引擎單元會根據(jù)該模塊定義的總包和平臺屬性, 在總包下對應的子包下生成相應的類文件,文件生成如下Action類名形式模塊表的名稱+Action, javaForm類名形式模塊表的名稱+Form, javaEntity類名形式模塊表的名稱+Entity, javaDao類類名形式模塊表的名稱+DAO. javaIDao類類名形式1+模塊表的名稱+DAO. javasvc類類名形式模塊表的名稱+Serivce. java數(shù)據(jù)庫模塊111,用于接受用戶的參數(shù)設置業(yè)務表結(jié)構(gòu)的屬性和數(shù)據(jù)項并以XML 文件的形式保存在數(shù)據(jù)庫14中。包括表名屬性子模塊1101、字段屬性子模塊1102、主鍵屬 性子模塊1103、索引屬性子模塊1104。表名屬性子模塊1101,用于對表進行命名,定義表名命名規(guī)則,如用戶表,可以用 前綴加相應的名稱業(yè)務單詞,前綴和名稱含義單詞直接的連接符號,這些都需在此進行定 義,例如定義前綴為TB,連接符合為“_”,業(yè)務單詞名稱為UESER,這個表名就定義為TB_ USER。字段屬性子模塊1102,用于定義字段命名規(guī)則及名稱,字段主要體現(xiàn)在form類和 entity類、jsp中,定義字段的前綴和連接符號,前綴和連接符號在生成的文件中是不顯示 的,主要是來判斷該字段在jsp頁面中顯示的標簽控件,前綴主要包括Txt (在頁面中以文 本框的形式體現(xiàn))、com(在頁面中以下拉框的形式體現(xiàn))date (在頁面中以時間控件的形式 體現(xiàn))txtare (在頁面中以文本域的形式體現(xiàn))。
主鍵屬性子模塊1103,用于接收用戶的參數(shù)設置主鍵是自動生成還是由用戶填 寫,如果自動生成,自動生成的規(guī)則,主要序列的方式,所指定序列的名稱。索引屬性子模塊1104,用于接收用戶的參數(shù)設置查詢的文件索引,生成相應的可 擴展標記語言XML配置文件并輸出,以提高查詢效率。頁面屬性模塊113,用于接收用戶的參數(shù)定義反饋給用戶時的頁面樣式表的結(jié)構(gòu)、 控件類型、控件顏色、控件布局等,并以頁面樣式表的定義規(guī)范以層疊樣式表CSS文件形式 存儲在數(shù)據(jù)庫14中。設定樣式表的文件名稱,分為兩大類,查詢頁面和維護頁面可以分別 指定不同的樣式表,樣式表也可以直接修改,修改完畢后,直接保存到平臺對應的樣式表的 路徑下。腳本的校驗功能,針對各種不同的字段類型,指定不同的校驗方法,類型包括數(shù)字 型、日期型、字符型三大類,在生成jsp時會關聯(lián)相應的方法。還包括,數(shù)據(jù)庫鏈接模塊114,用于連接數(shù)據(jù)庫14,將屬性設置單元中數(shù)據(jù)庫模塊 生成的XML配置文件存儲到數(shù)據(jù)庫14中。上面詳細說明了屬性設置單元11中的各個模塊,下面說明引擎單元12中的各個 模塊及功能;引擎單元12中包括以下各個組件及功能1)數(shù)據(jù)庫組件121,用于連接數(shù)據(jù)庫14,并讀取數(shù)據(jù)庫鏈接模塊114保存到數(shù)據(jù)庫 14中的業(yè)務表的XML配置文件信息。對將要使用的數(shù)據(jù)庫14,可以通過交互頁面,設置連接參數(shù),保存到指定的XML文 件中。以備在使用數(shù)據(jù)庫的時候進行對該數(shù)據(jù)庫的連接??梢酝ㄟ^配置使用的數(shù)據(jù)庫,讀 取該庫中的業(yè)務表信息。2)解析屬性組件122,主要功能解析在數(shù)據(jù)庫中保存的XML配置文件,解析所述命名屬性模塊生成的XML配置文 件和所述頁面屬性模塊生成的CSS配置文件,解析后進行讀取并提供給生成代碼組件,生 成代碼組件按照XML配置文件、CSS配置定義的屬性規(guī)則生成相應的代碼文件。解析數(shù)據(jù) 庫配置參數(shù),提供給數(shù)據(jù)庫連接,進行對數(shù)據(jù)庫的連接。3)代碼生成組件123,主要功能對選取的業(yè)務表,按照解析屬性組件解析出的規(guī)范規(guī)則生成相應的代碼文件,文 件主要分兩類,一類是相應的java類文件,另一類是相應的jsp頁面文件,Java文件會按 照設置好的包名自動創(chuàng)建在平臺的src目錄下,jsp文件會按照總包的名稱生成到平臺下 的webroot目錄下。4)配置文件組件124,主要功能平臺架構(gòu)采用開源的SSHGtruts Spring Hibernate三者的結(jié)合)結(jié)構(gòu)的J2EE 架構(gòu)上進行編程開發(fā)的,在開發(fā)過程中需要struts、Spring和hibernate的一些配置文件, 把代碼生成組件生成的java類和jsp文件配置到這些配置文件中。通過本發(fā)明的裝置實施例,用戶在設計軟件的過程中,首先分析業(yè)務需求,確定需 要顯示哪些數(shù)據(jù),從而通過屬性設置單元中的各個模塊分別設置相應的文件名稱、所包含 的字段、數(shù)據(jù)類型等表結(jié)構(gòu)、頁面顯示內(nèi)容的布局,設定哪些字段數(shù)據(jù)需進行維護、在頁面 顯示形式、需操作功能(增、刪、改、查)等;在設置完成后,屬性設置單元會自動將設置的參數(shù)以XML文件形式保存到數(shù)據(jù)庫 中,引擎單元會通過數(shù)據(jù)庫組件連接數(shù)據(jù)庫,通過解析屬性組件讀取XML文件并解析,由代
6碼生成組件按照命名屬性模塊定義的規(guī)范,生成相應名稱的Java/Jsp代碼文件;最后由配 置文件組件將生成的代碼文件配置到相應平臺下的文件中。本發(fā)明的裝置采用組件化的結(jié)構(gòu),通過用戶設置的參數(shù),可自動生成相應的代碼 文件,由用戶配置到平臺;通過本發(fā)明的裝置,節(jié)省了用戶編輯代碼文件的時間,提高了用 戶的工作效率,降低整個項目的開發(fā)周期。顯然,本領域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在 存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中 的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬 件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于J2EE架構(gòu)的代碼生成裝置,其特征在于,包括屬性設置單元,用于按照接收的參數(shù)來設置文件屬性,生成相應的配置文件并輸出; 引擎單元,用于獲取所述配置文件并解析,按照解析出的所述文件屬性選擇相應的代 碼模塊,并生成代碼文件。
2.根據(jù)權(quán)利要求1所述的代碼生成裝置,其特征在于,還包括輸入輸出單元,用于將來自用戶的參數(shù)發(fā)送至所述屬性設置單元,輸出所述引擎單元 生成的代碼文件。
3.根據(jù)權(quán)利要求1或2所述的代碼生成裝置,其特征在于,所述屬性設置單元包括 命名屬性模塊,用于按照用戶的參數(shù),設置文件名稱規(guī)則和文件內(nèi)的變量名稱規(guī)則,生成相應的可擴展標記語言XML配置文件并輸出;頁面屬性模塊,用于接收用戶的參數(shù),設置顯示給用戶的頁面形狀、頁面上的控件類 型、控件顏色和控件布局,生成相應的層疊樣式表CSS配置文件并輸出;數(shù)據(jù)庫模塊,用于接收用戶的參數(shù),設置所述頁面上顯示的表結(jié)構(gòu)、字段屬性、主鍵屬 性、索引屬性,生成相應的XML配置文件并輸出。
4.根據(jù)權(quán)利要求3所述的代碼生成裝置,其特征在于,所述數(shù)據(jù)庫模塊包括表名屬性子模塊,用于接收用戶的參數(shù),設置所述表的命名規(guī)則,生成相應的XML配置 文件并輸出;字段屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)每個字段的內(nèi)數(shù)據(jù)類型和顯示規(guī)則, 生成相應的XML配置文件并輸出;主鍵屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)主鍵的生成規(guī)則,生成相應的XML配 置文件并輸出;索引屬性子模塊,用于接收用戶的參數(shù),設置表內(nèi)的索引,生成相應的XML配置文件并 輸出。
5.根據(jù)權(quán)利要求3所述的代碼生成裝置,其特征在于,所述屬性設置單元內(nèi)還包括 數(shù)據(jù)庫鏈接模塊,用于將所述數(shù)據(jù)庫模塊生成的XML配置文件存儲到數(shù)據(jù)庫中; 所述引擎單元,用于通過所述數(shù)據(jù)庫獲取所述XML配置文件。
6.根據(jù)權(quán)利要求5所述的代碼生成裝置,其特征在于,所述引擎單元包括 數(shù)據(jù)庫組件,用于接收用戶的參數(shù),設置連接所述數(shù)據(jù)庫配置文件;解析屬性組件,用于獲取所述數(shù)據(jù)庫保存的XML配置文件、所述命名屬性模塊生成的 XML配置文件和所述頁面屬性模塊生成的CSS配置文件并解析;代碼生成組件,用于按照解析出的所述文件屬性選擇相應的代碼模塊,并生成代碼文件。
7.根據(jù)權(quán)利要求6所述的代碼生成裝置,其特征在于,所述引擎單元,還包括 配置文件組件,用于將代碼生成組件生成的代碼文件配置到預定義的文件中。
全文摘要
本發(fā)明提供了一種基于J2EE架構(gòu)的代碼生成裝置,本發(fā)明的裝置包括屬性設置單元,用于按照接收的參數(shù)來設置文件屬性,生成相應的配置文件并輸出;引擎單元,用于獲取所述配置文件并解析,按照解析出的所述文件屬性選擇相應的代碼模塊,并生成代碼文件。本發(fā)明的裝置采用組件化的結(jié)構(gòu),通過用戶設置的參數(shù),可自動生成相應的代碼文件,由用戶配置到平臺;通過本發(fā)明的裝置,節(jié)省了用戶編輯代碼文件的時間,提高了用戶的工作效率,降低整個項目的開發(fā)周期。
文檔編號G06F9/44GK102117202SQ200910244278
公開日2011年7月6日 申請日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者陳兵 申請人:北京方正奧德計算機系統(tǒng)有限公司, 北大方正集團有限公司