web系統(tǒng)的自動生成裝置和自動生成方法
【專利摘要】本發(fā)明提供了一種web系統(tǒng)的自動生成裝置,包括:視圖層生成單元,用于生成所述web系統(tǒng)的視圖層的表單界面;模型層生成單元,包括:數(shù)據(jù)庫建立子單元,用于建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng)的數(shù)據(jù)庫表;類創(chuàng)建子單元,用于創(chuàng)建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生成;控制層生成單元,包括:功能配置子單元,用于根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置;策略建立子單元,用于建立控制策略,以完成所述web系統(tǒng)的控制層的生成。本發(fā)明還提出了對應(yīng)的web系統(tǒng)的自動生成方法。通過本發(fā)明的技術(shù)方案,可以提高web系統(tǒng)開發(fā)過程中的自動化過程,減少人工干預(yù),簡化開發(fā)過程。
【專利說明】web系統(tǒng)的自動生成裝置和自動生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體而言,涉及一種web系統(tǒng)的自動生成裝置和 一種web系統(tǒng)的自動生成方法。
【背景技術(shù)】
[0002] 在web系統(tǒng)的開發(fā)中,設(shè)計者們在面對如何架構(gòu)web系統(tǒng)以達(dá)到開發(fā)更方便、更簡 潔的時候,MVC (模型(model) -視圖(view) -控制器(controller))架構(gòu)模式逐漸成為 了主流技術(shù)。MVC是一種軟件構(gòu)件模式,用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法組織代碼, 這個方法的假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個部件里面,而且界面和用戶圍繞數(shù)據(jù)的 交互能被改進(jìn)和個性化定制而不需要重新編寫業(yè)務(wù)邏輯。MVC被應(yīng)用于在一個邏輯的圖形 化用戶界面的結(jié)構(gòu)中,實(shí)現(xiàn)映射傳統(tǒng)的輸入、處理和輸出功能。
[0003] MVC將M (模型層)和V (視圖層)的實(shí)現(xiàn)代碼分離,從而使同一個程序可以使用不 同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C (控制層)存在的目 的則是確保M (模型層)和V (視圖層)的同步,一旦M (模型層)改變,V (視圖層)應(yīng)該同步 更新。它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。基于上述原則,web應(yīng)用程序被分 成三個核心部件:模型、視圖、控制器,它們各自處理自己的任務(wù)。
[0004] 如今業(yè)界也有很多成熟并且被廣泛應(yīng)用的MVC架構(gòu)方案,比如Struts、Spring、 Hibernate等。它們在使用MVC設(shè)計模式進(jìn)行web系統(tǒng)架構(gòu)的時候,完全能夠通過配置文件 將解耦的C (控制層)和M (模型層)緊密關(guān)聯(lián)起來而又相互獨(dú)立,并且通過策略模式和面向 切面編程的技術(shù),能夠智能地自動化生成部分M (模型層)和C (控制層)的代碼。
[0005] 然而,相關(guān)技術(shù)中所提出的各種MVC的解決方案,仍然停留在部分層次的代碼自 動化生成,或者某個層次部分自動化,無法提供一整套的技術(shù)方案來進(jìn)行對MVC整個層次 進(jìn)行與業(yè)務(wù)邏輯無關(guān)的代碼的自動化生成。
[0006] 因此,如何提供一種新的web系統(tǒng)的開發(fā)技術(shù),使得web系統(tǒng)的開發(fā)更加自動化, 讓程序開發(fā)者更注重于具體的業(yè)務(wù)邏輯,提高工作效率。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明正是基于上述問題,提出了一種新的web系統(tǒng)的自動生成技術(shù),可以提高 web系統(tǒng)開發(fā)過程中的自動化過程,減少人工干預(yù),簡化開發(fā)過程。
[0008] 有鑒于此,本發(fā)明提出了一種web系統(tǒng)的自動生成裝置,包括:視圖層生成單元, 用于生成所述web系統(tǒng)的視圖層的表單界面;模型層生成單元,包括:數(shù)據(jù)庫建立子單元, 用于建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng)的數(shù)據(jù)庫表,所述數(shù)據(jù)庫表 中的字段與所述表單界面中的每個表單控件的屬性信息一一對應(yīng);類創(chuàng)建子單元,創(chuàng)建用 于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生成;控制層生 成單元,包括:功能配置子單元,用于根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置;策略建立子單 元,用于建立控制策略,以完成所述web系統(tǒng)的控制層的生成。
[0009] 在該技術(shù)方案中,通過對視圖層的表單界面的屬性進(jìn)行獲取,并建立對應(yīng)的數(shù)據(jù) 庫,使得自動建立起視圖層和模型層之間的關(guān)聯(lián)關(guān)系,而不必由用戶完全手動進(jìn)行關(guān)聯(lián)配 置,提高了系統(tǒng)開發(fā)的自動化程度,有助于提高工作效率。同時,還通過提供自動生成的業(yè) 務(wù)處理類,完成控制層對模型層的數(shù)據(jù)庫的具體操作,實(shí)現(xiàn)了視圖層、模型層和控制層之間 的緊密關(guān)聯(lián),有助于降低人工的干預(yù)程度。
[0010] 根據(jù)本發(fā)明的又一方面,還提出了一種web系統(tǒng)的自動生成方法,包括:生成所述 web系統(tǒng)的視圖層的表單界面;建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng) 的數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述表單界面中的每個表單控件的屬性信息一一對 應(yīng);創(chuàng)建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生成; 根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置,并建立控制策略,以完成所述web系統(tǒng)的控制層的生 成。
[0011] 在該技術(shù)方案中,通過對視圖層的表單界面的屬性進(jìn)行獲取,并建立對應(yīng)的數(shù)據(jù) 庫,使得自動建立起視圖層和模型層之間的關(guān)聯(lián)關(guān)系,而不必由用戶完全手動進(jìn)行關(guān)聯(lián)配 置,提高了系統(tǒng)開發(fā)的自動化程度,有助于提高工作效率。同時,還通過提供自動生成的業(yè) 務(wù)處理類,完成控制層對模型層的數(shù)據(jù)庫的具體操作,實(shí)現(xiàn)了視圖層、模型層和控制層之間 的緊密關(guān)聯(lián),有助于降低人工的干預(yù)程度。
[0012] 通過以上技術(shù)方案,可以提高web系統(tǒng)開發(fā)過程中的自動化過程,減少人工干預(yù), 簡化開發(fā)過程。
【專利附圖】
【附圖說明】
[0013] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成裝置的示意框圖;
[0014] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成方法的流程示意圖;
[0015] 圖3示出了根據(jù)本發(fā)明的實(shí)施例的自動化生成web系統(tǒng)的原理示意圖。
【具體實(shí)施方式】
[0016] 為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實(shí)施 例及實(shí)施例中的特征可以相互組合。
[0017] 在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體實(shí) 施例的限制。
[0018] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成裝置的示意框圖。
[0019] 如圖1所示,根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成裝置,包括:視圖層生成 單元,用于生成所述web系統(tǒng)的視圖層的表單界面;模型層生成單元,包括:數(shù)據(jù)庫建立子 單元,用于建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng)的數(shù)據(jù)庫表,所述數(shù)據(jù) 庫表中的字段與所述表單界面中的每個表單控件的屬性信息一一對應(yīng);類創(chuàng)建子單元,創(chuàng) 建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生成;控制 層生成單元,包括:功能配置子單元,用于根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置;策略建立子 單元,用于建立控制策略,以完成所述web系統(tǒng)的控制層的生成。
[0020] 在該技術(shù)方案中,通過對視圖層的表單界面的屬性進(jìn)行獲取,并建立對應(yīng)的數(shù)據(jù) 庫,使得自動建立起視圖層和模型層之間的關(guān)聯(lián)關(guān)系,而不必由用戶完全手動進(jìn)行關(guān)聯(lián)配 置,提高了系統(tǒng)開發(fā)的自動化程度,有助于提高工作效率。同時,還通過提供自動生成的業(yè) 務(wù)處理類,完成控制層對模型層的數(shù)據(jù)庫的具體操作,實(shí)現(xiàn)了視圖層、模型層和控制層之間 的緊密關(guān)聯(lián),有助于降低人工的干預(yù)程度。
[0021] 在上述技術(shù)方案中,優(yōu)選地,所述視圖層生成單元包括:選擇子單元,用于根據(jù)接 收到的用戶的選擇指令,選擇表單控件和視圖類型;表單生成子單元,用于根據(jù)獲取的鍵入 信息,為每個表單控件添加對應(yīng)的屬性信息和方法信息,以生成所述視圖層的表單界面。
[0022] 在該技術(shù)方案中,用于無需執(zhí)行對具體代碼的編寫,只需要對視圖類型和預(yù)先建 立的可視化的控件模型進(jìn)行選擇,即可由后臺自動生成相應(yīng)的代碼,有助于提高工作效率。 通過鍵入屬性信息和方法信息,則針對由預(yù)設(shè)的控件模型構(gòu)成的系統(tǒng)結(jié)構(gòu),為每個具體的 控件設(shè)置對應(yīng)的實(shí)現(xiàn)功能和邏輯關(guān)系,但這些操作都無需由用戶手動編寫代碼,只需要關(guān) 注具體的業(yè)務(wù)邏輯即可,提升了自動化程度,有助于提高工作效率。
[0023] 在上述任一技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)庫建立子單元用于:創(chuàng)建包含所述表單 界面中的每個表單控件的屬性信息的JavaBean組件;根據(jù)所需的數(shù)據(jù)庫的屬性特征,生成 數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述JavaBean組件中的所有屬性信息一一對應(yīng);將所 述數(shù)據(jù)庫表存儲至數(shù)據(jù)庫。
[0024] 在該技術(shù)方案中,利用動態(tài)代理技術(shù),由JavaBean對視圖層的表單控件的屬性進(jìn) 行獲取,并建立對應(yīng)的數(shù)據(jù)庫表,從而在視圖層和模型層之間自動建立關(guān)聯(lián),以及在視圖 層、模型層與數(shù)據(jù)庫之間自動建立關(guān)聯(lián),無需用戶手動設(shè)置,有助于提升系統(tǒng)的自動化程 度,提高用戶的工作效率。
[0025] 在上述任一技術(shù)方案中,優(yōu)選地,所述JavaBean組件繼承用于操作所述數(shù)據(jù)庫的 基礎(chǔ)類;以及所述業(yè)務(wù)處理類包括代理組件和所述JavaBean組件,其中,所述代理組件通 過調(diào)用所述JavaBean組件,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
[0026] 在該技術(shù)方案中,通過由JavaBean組件繼承基礎(chǔ)類,實(shí)現(xiàn)對數(shù)據(jù)庫的具體操作, 而由代理組件實(shí)現(xiàn)對系統(tǒng)運(yùn)行時的具體請求進(jìn)行響應(yīng),從而實(shí)現(xiàn)對多個功能的明確劃分, 有助于具體的調(diào)試和控制。
[0027] 在上述任一技術(shù)方案中,優(yōu)選地,所述模型層生成單元還包括:模板生成子單元, 用于生成并存儲與所述業(yè)務(wù)處理類相關(guān)聯(lián)的SQL模板語句;其中,所述業(yè)務(wù)處理類將從接 收到的操作請求中解析出的信息添加至所述SQL模板語句,以生成SQL執(zhí)行語句,并通過所 述SQL執(zhí)行語句,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
[0028] 在該技術(shù)方案中,通過生成SQL模板語句,則當(dāng)對用戶的請求進(jìn)行響應(yīng)時,無需每 次都重新編寫SQL查詢語句,而直接將所希望操作的數(shù)據(jù)的標(biāo)識(如具體數(shù)據(jù)庫表的ID等) 添加至SQL模板語句中的相應(yīng)位置,即可直接實(shí)現(xiàn)對數(shù)據(jù)庫的操作,有助于縮短響應(yīng)時間, 提商運(yùn)行效率。
[0029] 在上述任一技術(shù)方案中,優(yōu)選地,所述控制層生成單元還包括:文件生成子單元, 用于通過檢測用戶的操作動作,確定操作對象和操作方式,以生成所述預(yù)設(shè)的配置文件。
[0030] 在該技術(shù)方案中,控制層的生成過程中,在初始化過程和具體的功能配置過程中, 需要使用預(yù)先生成的配置文件。配置文件的生成過程無需用戶手動編程,只需要由用戶執(zhí) 行如路徑的創(chuàng)建、對象的選擇、操作方式的選擇等操作,系統(tǒng)就能夠自動生成對應(yīng)的配置文 件,使得配置文件的生成過程更加自動化,有助于提高工作效率。
[0031] 在上述任一技術(shù)方案中,優(yōu)選地,所述策略建立子單元用于:根據(jù)用戶選擇的框架 類型,讀取所述框架類型對應(yīng)的預(yù)設(shè)控制策略;或根據(jù)接收到的用戶配置指令,建立實(shí)時配 置的控制策略。
[0032] 在該技術(shù)方案中,用戶可以對預(yù)先設(shè)置的框架類型進(jìn)行選擇,則可以直接讀取對 應(yīng)于被選中的框架對應(yīng)的控制策略,以提高效率;用戶也可以根據(jù)實(shí)際情況,配置新的控制 策略,以適用于不同的實(shí)際情況。
[0033] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成方法的流程示意圖。
[0034] 如圖2所示,根據(jù)本發(fā)明的實(shí)施例的web系統(tǒng)的自動生成方法,包括:生成所述 web系統(tǒng)的視圖層的表單界面;建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng) 的數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述表單界面中的每個表單控件的屬性信息一一對 應(yīng);創(chuàng)建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生成; 根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置,并建立控制策略,以完成所述web系統(tǒng)的控制層的生 成。
[0035] 在該技術(shù)方案中,通過對視圖層的表單界面的屬性進(jìn)行獲取,并建立對應(yīng)的數(shù)據(jù) 庫,使得自動建立起視圖層和模型層之間的關(guān)聯(lián)關(guān)系,而不必由用戶完全手動進(jìn)行關(guān)聯(lián)配 置,提高了系統(tǒng)開發(fā)的自動化程度,有助于提高工作效率。同時,還通過提供自動生成的業(yè) 務(wù)處理類,完成控制層對模型層的數(shù)據(jù)庫的具體操作,實(shí)現(xiàn)了視圖層、模型層和控制層之間 的緊密關(guān)聯(lián),有助于降低人工的干預(yù)程度。
[0036] 在上述技術(shù)方案中,優(yōu)選地,生成所述表單界面的過程包括:根據(jù)接收到的用戶的 選擇指令,選擇表單控件和視圖類型,并根據(jù)獲取的鍵入信息,為每個表單控件添加對應(yīng)的 屬性信息和方法信息,以生成所述視圖層的表單界面。
[0037] 在該技術(shù)方案中,用于無需執(zhí)行對具體代碼的編寫,只需要對視圖類型和預(yù)先建 立的可視化的控件模型進(jìn)行選擇,即可由后臺自動生成相應(yīng)的代碼,有助于提高工作效率。 通過鍵入屬性信息和方法信息,則針對由預(yù)設(shè)的控件模型構(gòu)成的系統(tǒng)結(jié)構(gòu),為每個具體的 控件設(shè)置對應(yīng)的實(shí)現(xiàn)功能和邏輯關(guān)系,但這些操作都無需由用戶手動編寫代碼,只需要關(guān) 注具體的業(yè)務(wù)邏輯即可,提升了自動化程度,有助于提高工作效率。
[0038] 在上述任一技術(shù)方案中,優(yōu)選地,建立所述數(shù)據(jù)庫的過程包括:創(chuàng)建包含所述表單 界面中的每個表單控件的屬性信息的JavaBean組件;根據(jù)所需的數(shù)據(jù)庫的屬性特征,生成 數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述JavaBean組件中的所有屬性信息一一對應(yīng);將所 述數(shù)據(jù)庫表存儲至數(shù)據(jù)庫。
[0039] 在該技術(shù)方案中,利用動態(tài)代理技術(shù),由JavaBean對視圖層的表單控件的屬性進(jìn) 行獲取,并建立對應(yīng)的數(shù)據(jù)庫表,從而在視圖層和模型層之間自動建立關(guān)聯(lián),以及在視圖 層、模型層與數(shù)據(jù)庫之間自動建立關(guān)聯(lián),無需用戶手動設(shè)置,有助于提升系統(tǒng)的自動化程 度,提高用戶的工作效率。
[0040] 在上述任一技術(shù)方案中,優(yōu)選地,還包括:所述JavaBean組件繼承用于操作所述 數(shù)據(jù)庫的基礎(chǔ)類;以及所述業(yè)務(wù)處理類包括代理組件和所述JavaBean組件,其中,所述代 理組件通過調(diào)用所述JavaBean組件,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
[0041] 在該技術(shù)方案中,通過由JavaBean組件繼承基礎(chǔ)類,實(shí)現(xiàn)對數(shù)據(jù)庫的具體操作, 而由代理組件實(shí)現(xiàn)對系統(tǒng)運(yùn)行時的具體請求進(jìn)行響應(yīng),從而實(shí)現(xiàn)對多個功能的明確劃分, 有助于具體的調(diào)試和控制。
[0042] 在上述任一技術(shù)方案中,優(yōu)選地,還包括:生成并存儲與所述業(yè)務(wù)處理類相關(guān)聯(lián)的 SQL模板語句;所述業(yè)務(wù)處理類將從接收到的操作請求中解析出的信息添加至所述SQL模 板語句,以生成SQL執(zhí)行語句,并通過所述SQL執(zhí)行語句,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
[0043] 在該技術(shù)方案中,通過生成SQL模板語句,則當(dāng)對用戶的請求進(jìn)行響應(yīng)時,無需每 次都重新編寫SQL查詢語句,而直接將所希望操作的數(shù)據(jù)的標(biāo)識(如具體數(shù)據(jù)庫表的ID等) 添加至SQL模板語句中的相應(yīng)位置,即可直接實(shí)現(xiàn)對數(shù)據(jù)庫的操作,有助于縮短響應(yīng)時間, 提商運(yùn)行效率。
[0044] 在上述任一技術(shù)方案中,優(yōu)選地,還包括:通過檢測用戶的操作動作,確定操作對 象和操作方式,以生成所述預(yù)設(shè)的配置文件。
[0045] 在該技術(shù)方案中,控制層的生成過程中,在初始化過程和具體的功能配置過程中, 需要使用預(yù)先生成的配置文件。配置文件的生成過程無需用戶手動編程,只需要由用戶執(zhí) 行如路徑的創(chuàng)建、對象的選擇、操作方式的選擇等操作,系統(tǒng)就能夠自動生成對應(yīng)的配置文 件,使得配置文件的生成過程更加自動化,有助于提高工作效率。
[0046] 在上述任一技術(shù)方案中,優(yōu)選地,建立控制策略的過程包括:根據(jù)用戶選擇的框架 類型,讀取所述框架類型對應(yīng)的預(yù)設(shè)控制策略;或根據(jù)接收到的用戶配置指令,建立實(shí)時配 置的控制策略。
[0047] 在該技術(shù)方案中,用戶可以對預(yù)先設(shè)置的框架類型進(jìn)行選擇,則可以直接讀取對 應(yīng)于被選中的框架對應(yīng)的控制策略,以提高效率;用戶也可以根據(jù)實(shí)際情況,配置新的控制 策略,以適用于不同的實(shí)際情況。
[0048] 圖3示出了根據(jù)本發(fā)明的實(shí)施例的自動化生成web系統(tǒng)的原理示意圖。
[0049] 下面結(jié)合圖3,對基于本發(fā)明的實(shí)施例的自動化生成web系統(tǒng)的工作原理進(jìn)行詳 細(xì)說明。
[0050] 假定本發(fā)明的web系統(tǒng)開發(fā)平臺中,包括基礎(chǔ)的平臺系統(tǒng)302,還包括用于其他具 體功能的如視圖層平臺302A、模型層平臺302B、控制層平臺302C等,以實(shí)現(xiàn)具體的web系 統(tǒng)的開發(fā)。
[0051] 當(dāng)需要執(zhí)行web系統(tǒng)開發(fā)時,需要由平臺系統(tǒng)302對用戶預(yù)先進(jìn)行和完成的設(shè)置 或配置進(jìn)行讀取,以實(shí)現(xiàn)系統(tǒng)的初始化和功能配置。
[0052] 一、視圖層的自動生成
[0053] 在本實(shí)施例中,主要由視圖層平臺302A實(shí)現(xiàn)視圖層的自動化生成。具體地,可以 通過瀏覽器的方式實(shí)現(xiàn)人機(jī)交互過程,并且用戶僅需要通過鼠標(biāo)拖拽和鍵盤操作的方式, 即可實(shí)現(xiàn)頁面的生成。
[0054] 1、視圖類型
[0055] 用戶根據(jù)需求,選擇所需的視圖類型,比如HTML、jsp、freemarker等。
[0056] 2、設(shè)計圖
[0057] 具體地,需要由視圖層平臺302A提供可視化的視圖控件,則用戶可以根據(jù)自身的 需求,使用鼠標(biāo)選擇和拖動視圖控件,即可形成相應(yīng)的設(shè)計圖。比如,其中的視圖控件可以 采用W3C (World Wide Web Consortium,萬維網(wǎng)聯(lián)盟)標(biāo)準(zhǔn)里面的控件,只需要了解W3C的 相關(guān)規(guī)范,不需要再花費(fèi)任何時間和精力去學(xué)習(xí)新的控件和API。
[0058] 3、表單
[0059] 視圖層平臺302A根據(jù)用戶選擇的視圖類型和設(shè)計平臺上的設(shè)計圖,即可自動生 成相應(yīng)的表單。
[0060] 其中,表單上的視圖控件之間的關(guān)聯(lián)和交互,可以采用JavaScript和DOM技術(shù)來 實(shí)現(xiàn)。比如,在視圖層平臺302A中會提供一些基本的DOM操作(方法),以供程序員進(jìn)行選 擇;同時,程序員也可以自定義DOM方法,并關(guān)聯(lián)至具體的視圖控件。而表單與后臺交互則 可以采用如ajax方式,或生成臨時form標(biāo)簽提交的方式。
[0061] 4、"登錄界面"的實(shí)施例
[0062] 假定用戶需要設(shè)計一個"登錄界面"的web系統(tǒng),則對于視圖層的生成過程包括:
[0063] 1)在視圖設(shè)計平臺302A的控件選擇界面上,拖拽一個用戶名輸入框(input-text 標(biāo)簽)和一個密碼輸入框(input-password標(biāo)簽),并拖拽兩個按鈕:"登錄"(input-button 標(biāo)簽)、"重置"(input-button 標(biāo)簽)。
[0064] 2)選擇需要生成的表單類型(如JSP、HTML等):jsp ;輸入表單ID (唯一標(biāo)示): login. jsp〇
[0065] 3)編輯每個視圖控件的屬性。比如雙擊用戶名輸入框編輯屬性,輸入ID: userName ;雙擊密碼輸入框編輯屬性,輸入ID :userPassword ;雙擊登錄按鈕編輯屬性,輸 入 ID :loginButton、輸入提交 URL :login. do ;輸入需要提交的 form ID JoginForm ;雙擊 重置按鈕編輯屬性,輸入ID :resetButton ;輸入需要重置的form ID :loginForm。
[0066] 4)視圖層平臺302A會自動為每個視圖控件生成javaScript方法。比如給 IoginButton提交:產(chǎn)生一個臨時form, ID為:loginForm,內(nèi)容包含了頁面上所有可輸入對 象(密碼輸入框、密碼輸入框);action為:login, do ;最后form, submit ()。
[0067] 當(dāng)然,如果用戶需要自己編寫javaScript方法進(jìn)行登錄,可以編輯登錄按鈕的事 件屬性,并改為自定義的方法。
[0068] 5)自動化裝置在后臺根據(jù)前面一系列設(shè)計步驟生成相應(yīng)的表單界面。
[0069] 二、模型層的自動生成
[0070] 1> JavaBean
[0071] 模型層平臺302B使用動態(tài)代理技術(shù),將表單ID作為JavaBean的類名(為每個表 單生成一個對應(yīng)的JavaBean),表單上所有的html可輸入標(biāo)簽對應(yīng)于JavaBean的屬性,自 動生成所對應(yīng)的JavaBean。
[0072] 2、數(shù)據(jù)庫
[0073] 獲取生成的JavaBean中的包含的信息,即視圖層中對應(yīng)表單中的視圖控件的屬 性信息,并根據(jù)JavaBean的信息以及所選擇使用的數(shù)據(jù)庫類型、版本和框架,自動產(chǎn)生相 應(yīng)的數(shù)據(jù)庫腳本。
[0074] 通過上述生成的數(shù)據(jù)庫腳本,自動生成與JavaBean對應(yīng)(比如數(shù)據(jù)庫表的ID與 JavaBean的ID、對應(yīng)表單的ID相同)的數(shù)據(jù)庫表,數(shù)據(jù)庫表里面的字段與Javabean里面的 屬性一一對應(yīng),從而完成了對數(shù)據(jù)庫的創(chuàng)建。
[0075] 同時,每個JavaBean都繼承一個基礎(chǔ)類,該基礎(chǔ)類主要是將JavaBean與數(shù)據(jù)庫操 作關(guān)聯(lián)起來,能夠?qū)崿F(xiàn)對數(shù)據(jù)庫的操作,如增、刪、改、查等。
[0076] 3、Action
[0077] 實(shí)際上,可以由JavaBean直接響應(yīng)控制層的請求,執(zhí)行對數(shù)據(jù)庫的操作,但為了 對不同功能進(jìn)行區(qū)分,便于系統(tǒng)的調(diào)試和分工,本系統(tǒng)還通過創(chuàng)建Action,從而分擔(dān)對控制 層的請求。
[0078] Action為業(yè)務(wù)處理類,是根據(jù)JavaBean的屬性和方法生成的一個有著基本數(shù)據(jù) 庫操作(增刪改查等)的操作類,該Action可以通過調(diào)用JavaBean來操作數(shù)據(jù)庫。
[0079] 4、SQL語句模板
[0080] 在產(chǎn)生Action的同時,模型層平臺302B還會產(chǎn)生一個與該Action對應(yīng)的SQL配 置文件,以輔助支持Action對數(shù)據(jù)庫的操作。具體地,該SQL配置文件包含對數(shù)據(jù)庫操作 的SQL語句模板,則無需每次重新生成SQL語句,而只要根據(jù)控制層的請求,將關(guān)聯(lián)的數(shù)據(jù) 標(biāo)識(如數(shù)據(jù)庫表的ID等)添加至SQL語句模板中相應(yīng)的位置即可,有助于提高工作效率。
[0081] 當(dāng)然,程序員可以根據(jù)實(shí)際情況來對Action進(jìn)行修改,也可以對SQL配置文件進(jìn) 行修改;而對于數(shù)據(jù)庫的操作功能的修改,也可以自動同步到Action和SQL配置文件中。 [0082] 在上述技術(shù)方案中,通過對視圖層表單頁面的解析,將表單的各種輸入控件作為 屬性,并生成相應(yīng)的函數(shù)(方法),從而得到JavaBean。上述的動態(tài)代理技術(shù)可以很好的將前 臺的視圖頁面與后臺模型層的具體業(yè)務(wù)邏輯處理類關(guān)聯(lián)起來,讓程序員只需要關(guān)心具體業(yè) 務(wù)邏輯的處理,不用再去考慮前臺與后臺的關(guān)聯(lián)、通信,從而提升工作效率。
[0083] 5、"登錄界面"的實(shí)施例
[0084] 1)根據(jù)生成的表單,在后臺創(chuàng)建一個類,其名稱依據(jù)表單ID (以便建立關(guān)聯(lián)): Login_jsp. java,各屬性與表單的輸入控件一致:username、UsePassword ;相應(yīng)的方法: getUserName()、setUserName()、getUserPassword()、setUserPassword()〇
[0085] 2 )生成SQL腳本。具體代碼可以為:
[0086]
【權(quán)利要求】
1. 一種web系統(tǒng)的自動生成裝置,其特征在于,包括: 視圖層生成單元,用于生成所述web系統(tǒng)的視圖層的表單界面;模型層生成單元,包 括: 數(shù)據(jù)庫建立子單元,用于建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng)的 數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述表單界面中的每個表單控件的屬性信息一一對 應(yīng); 類創(chuàng)建子單元,創(chuàng)建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng) 的模型層的生成; 控制層生成單元,包括: 功能配置子單元,用于根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置; 策略建立子單元,用于建立控制策略,以完成所述web系統(tǒng)的控制層的生成。
2. 根據(jù)權(quán)利要求1所述的web系統(tǒng)的自動生成裝置,其特征在于,所述視圖層生成單元 包括: 選擇子單元,用于根據(jù)接收到的用戶的選擇指令,選擇表單控件和視圖類型; 表單生成子單元,用于根據(jù)獲取的鍵入信息,為每個表單控件添加對應(yīng)的屬性信息和 方法信息,以生成所述視圖層的表單界面。
3. 根據(jù)權(quán)利要求1所述的web系統(tǒng)的自動生成裝置,其特征在于,所述數(shù)據(jù)庫建立子單 元用于: 創(chuàng)建包含所述表單界面中的每個表單控件的屬性信息的JavaBean組件; 根據(jù)所需的數(shù)據(jù)庫的屬性特征,生成數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述 JavaBean組件中的所有屬性信息--對應(yīng); 將所述數(shù)據(jù)庫表存儲至數(shù)據(jù)庫。
4. 根據(jù)權(quán)利要求3所述的web系統(tǒng)的自動生成裝置,其特征在于, 所述JavaBean組件繼承用于操作所述數(shù)據(jù)庫的基礎(chǔ)類;以及 所述業(yè)務(wù)處理類包括代理組件和所述JavaBean組件,其中,所述代理組件通過調(diào)用所 述JavaBean組件,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
5. 根據(jù)權(quán)利要求1所述的web系統(tǒng)的自動生成裝置,其特征在于,所述模型層生成單元 還包括: 模板生成子單元,用于生成并存儲與所述業(yè)務(wù)處理類相關(guān)聯(lián)的SQL模板語句; 其中,所述業(yè)務(wù)處理類將從接收到的操作請求中解析出的信息添加至所述SQL模板語 句,以生成SQL執(zhí)行語句,并通過所述SQL執(zhí)行語句,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
6. 根據(jù)權(quán)利要求1所述的web系統(tǒng)的自動生成裝置,其特征在于,所述控制層生成單元 還包括: 文件生成子單元,用于通過檢測用戶的操作動作,確定操作對象和操作方式,以生成所 述預(yù)設(shè)的配置文件。
7. 根據(jù)權(quán)利要求1所述的web系統(tǒng)的自動生成裝置,其特征在于,所述策略建立子單元 用于: 根據(jù)用戶選擇的框架類型,讀取所述框架類型對應(yīng)的預(yù)設(shè)控制策略; 或根據(jù)接收到的用戶配置指令,建立實(shí)時配置的控制策略。
8. -種web系統(tǒng)的自動生成方法,其特征在于,包括: 生成所述web系統(tǒng)的視圖層的表單界面; 建立數(shù)據(jù)庫,所述數(shù)據(jù)庫中存儲有與所述表單界面相對應(yīng)的數(shù)據(jù)庫表,所述數(shù)據(jù)庫表 中的字段與所述表單界面中的每個表單控件的屬性信息一一對應(yīng); 創(chuàng)建用于對所述數(shù)據(jù)庫進(jìn)行操作的業(yè)務(wù)處理類,以完成所述web系統(tǒng)的模型層的生 成; 根據(jù)預(yù)設(shè)的配置文件進(jìn)行功能配置,并建立控制策略,以完成所述web系統(tǒng)的控制層 的生成。
9. 根據(jù)權(quán)利要求8所述的web系統(tǒng)的自動生成方法,其特征在于,生成所述表單界面的 過程包括: 根據(jù)接收到的用戶的選擇指令,選擇表單控件和視圖類型,并根據(jù)獲取的鍵入信息,為 每個表單控件添加對應(yīng)的屬性信息和方法信息,以生成所述視圖層的表單界面。
10. 根據(jù)權(quán)利要求8所述的web系統(tǒng)的自動生成方法,其特征在于,建立所述數(shù)據(jù)庫的 過程包括: 創(chuàng)建包含所述表單界面中的每個表單控件的屬性信息的JavaBean組件; 根據(jù)所需的數(shù)據(jù)庫的屬性特征,生成數(shù)據(jù)庫表,所述數(shù)據(jù)庫表中的字段與所述 JavaBean組件中的所有屬性信息--對應(yīng); 將所述數(shù)據(jù)庫表存儲至數(shù)據(jù)庫。
11. 根據(jù)權(quán)利要求10所述的web系統(tǒng)的自動生成方法,其特征在于,還包括: 所述JavaBean組件繼承用于操作所述數(shù)據(jù)庫的基礎(chǔ)類;以及 所述業(yè)務(wù)處理類包括代理組件和所述JavaBean組件,其中,所述代理組件通過調(diào)用所 述JavaBean組件,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
12. 根據(jù)權(quán)利要求8所述的web系統(tǒng)的自動生成方法,其特征在于,還包括: 生成并存儲與所述業(yè)務(wù)處理類相關(guān)聯(lián)的SQL模板語句; 所述業(yè)務(wù)處理類將從接收到的操作請求中解析出的信息添加至所述SQL模板語句,以 生成SQL執(zhí)行語句,并通過所述SQL執(zhí)行語句,實(shí)現(xiàn)對所述數(shù)據(jù)庫的操作。
13. 根據(jù)權(quán)利要求8所述的web系統(tǒng)的自動生成方法,其特征在于,還包括: 通過檢測用戶的操作動作,確定操作對象和操作方式,以生成所述預(yù)設(shè)的配置文件。
14. 根據(jù)權(quán)利要求8所述的web系統(tǒng)的自動生成方法,其特征在于,建立控制策略的過 程包括: 根據(jù)用戶選擇的框架類型,讀取所述框架類型對應(yīng)的預(yù)設(shè)控制策略; 或根據(jù)接收到的用戶配置指令,建立實(shí)時配置的控制策略。
【文檔編號】G06F17/30GK104424338SQ201310412990
【公開日】2015年3月18日 申請日期:2013年9月11日 優(yōu)先權(quán)日:2013年9月11日
【發(fā)明者】吳春志, 鄧克毅, 黃科 申請人:北大方正集團(tuán)有限公司, 北京方正阿帕比技術(shù)有限公司, 方正信息產(chǎn)業(yè)控股有限公司