Web應用開發平臺 OpenJWeb

fmms 13年前發布 | 75K 次閱讀 Java Web框架

低成本、高效率的Java Web應用快速開發利器--OpenJWeb快速開發平臺

1.1 關于OpenJWeb OpenJWeb是一款基于java主流開源技術(SSH2)實現的Web應用快速開發平臺產品。如果選擇了OpenJWeb作為貴公司的基礎產品架構,這意味著您選擇了一個低成本、高效率的軟件開發模式,換句話說,就是軟件開發速度會成倍提高、產品或項目研發成本會大幅度降低。而且OpenJWeb還為您的公司節省了一個平臺研發團隊的投入。 如果您決定使用OpenJWeb作為Java Web應用的基礎架構,您會獲得以下利益: (1) OpenJWeb平臺的絕大部分源代碼。 (2) 不再需要花大量資金投入一個平臺研發團隊。 (3) 您的開發人員不再需要單獨投入大量工作時間研究開源技術,OpenJWeb已經集成了主流的Java 開源技術。 (4) 與商業的平臺廠商不同,OpenJWeb為貴公司提供了透明的平臺架構,您公司完全可以基于平臺做更多的擴展。 (5) 低廉的產品價格和永久免費的在線技術支持(QQ或MSN)。 (6) 定義一個增刪改查模塊僅需要幾分鐘時間,并且還可以生成java源代碼,支持單表,主明細(Master-Detail)表、樹型結構、審批單等多種樣式的Web頁面。

1.2 OpenJWeb能解決什么問題

(1) 在企業應用開發中,組織結構,權限,功能菜單管理等基礎模塊,因為沒有進行良好的設計,導致在不同的項目中不能重用,還要做大量修改才能在新的項目中使用。 (2) 對于單表,主明細表類的增刪改查,由于開發模式相似,但由于沒有代碼生成器和Web頁面生成器,導致程序員即使開發一個相似的功能,也要花大量的時間進行編碼和調試。開發效率非常低。開發人員經常因為查找一個BUG花費大量時間調試,調試完才發現不是有的地方在復制代碼的過程中漏改了,就是有的地方大小寫拼寫錯誤等等。 (3) 在國內,大量的公司,大量的項目開發人員都不可避免地要實現組織結構,權限等每個業務系統都必需的基礎功能,如果有一個好的開源的平臺,大家就不需要在這些基礎模塊上投入不必要的開發時間,有這樣的平臺能大大降低研發資源的重復投入。 (4) 字段校驗規則,字段默認值、頁面中的查詢條件列,都可以在平臺中配置,不需要更改頁面代碼和程序代碼。權限管理非常細致,不僅包括菜單,按鈕、數據行都可以進行授權。 (5) 新的開發人員加入團隊后,稍微加以培訓,就會了解應該在什么地方添加業務邏輯,在什么地方增加新的校驗類等等,能否在很短的時間內就融入到開發環節中。 (6) 由于開源框架眾多,選擇什么框架,并將這些框架有機集成起來,然后針對這些框架做出開發平臺,沒有豐富的Java開發經驗是難以完成的。但有了統一的集成好的框架,開發人員不需要再為java產品的選型頭疼了。 (7) 平臺提供了大量的應用組件,包括郵件收發、內容管理、試題系統、檔案管理、工作流引擎和審批流設置、內部論壇、郵件及短信群發,即時通信,搜索引擎等。 (8) 使用openjweb作為產品平臺,可以統一開發規范,提高軟件復用度,降低開發成本,提高項目利潤。同時也會迅速提高Java開發人員的技術水平,大大縮短開發人員成為架構師所需要的時間。

1.2 OpenJWeb的主要技術框架

OpenJWeb 1.8版本的基礎框架是struts2.0.6+Spring2.5.6+hibernate3+Spring security2.0,另外還有strut1(部分功能是以前開發的),dwr,fckedit,extjs,圖表采用JFreechart,樹控件采用dhtmlxTree。另外還集成了JOTM,這個是在tomcat中的JTA,支持跨數據庫事務處理。

1.3 OpenJWeb的商業價值淺析

很多軟件公司為企業開發應用系統,往往動輒一年甚至更久,如此長的開發實施周期,導致項目還沒有實施完,需求已經發生很大變化,所以OpenJWeb從開發模式上采用平臺定制+二次開發輔助的模式可大大減少項目的開發工作量,縮短項目的實施周期,甚至后期都可以由用戶自己定制業務模塊,因而避免了軟件公司交付產品后,新的業務需求仍然需要軟件公司開發的局面。 應該說,對于越大型的企業應用項目,OpenJWeb節省的成本越顯著。這體現在: (1) 一般企業應用都有大量的后臺維護模塊,而這些模塊的開發很多都不可避免地要解決頁面JSP文件的開發,分頁、排序功能的處理,增刪改查功能的實現,數據庫建表,以及頁面中涉及到代碼-名稱列表的下拉窗口的檢索等等很多開發內容,如果沒有一個平臺工具提供快速開發支持的話,一個象簡單的客戶基本信息維護這樣的功能至少也得兩天的時間才能完成,而使用平臺工具開發的話,只需要十幾分鐘的定制的時間就可以輕松搞定。兩天和十幾分鐘的差異絕對不是一個小數目,對于一個百萬元的項目而言,使用平臺開發至少可以節省20萬以上的項目成本。對于軟件公司而言,減少20%的項目成本就意味著項目提高20%的利潤率!OpenJweb的快速功能生成器在項目開發中的效率,是傳統的軟件開發模式是不能匹敵的,只要數據結構設計出來,功能就可以快速生成出來。在做項目需求原型的時候是非常有幫助的。 (2) OpenJWeb平臺對開源社區的框架產品進行了很好的整合,同時也經過了若干大型項目的驗證,使用OpenJWeb平臺的用戶因而可以避免重復選型的風險,也節省了重新搭建應用框架的時間。 (3) 基于平臺產品進行應用開發和實施是以后軟件行業的主要模式,使用平臺產品進行開發可以使軟件公司完全擺脫手工作坊式的研發時代,對于大型項目的實施也不再需要靠大量招聘開發人員這種非常耗費成本的實施方式。另外,成熟的平臺減少了代碼出錯率,這也在很大程度上減少了修改錯誤代碼的時間。 (4) 成熟的開發平臺具有透明和統一的開發模式和框架,因而項目人員的變動不會對產品的體系架構產品影響。因而很大程度上減少了關鍵人員離職造成項目失敗的風險。 (5) 平臺產品已經實現了增刪改查生成,組織結構權限,數據權限控制,字段校驗器,業務邏輯生成器,默認值設置,代碼表管理、工作流引擎、即時通信、郵件收發、等很多功能,不需要用戶再進行同類功能的重復開發。 (6) 此平臺不僅對軟件公司,最終用戶有很大的價值,同時對于Java開發人 員來說也是一個很好的學習平臺,具有很大的學習價值和培訓價值。OpenJWeb平臺由于有機集成了開源領域的眾多產品,為Java人員提供了Java開源技術“一站式”學習通道,能在很短的時間內掌握這些開源技術的使用方式。通過OpenJWeb的學習和使用可以使Java人員在很短的時內提高自己的技術水平,從而使自己在競爭激烈的職場中脫穎而出。基于以上這些價值,OpenJweb快速開發平臺也是培訓機構很好的實戰教材。

1.4 OpenJWeb的主要用戶群體

(1) 對于還沒有或者剛選擇Java平臺的軟件公司,本平臺已經具有了很多開發好的功能,不需要重復開發。 (2) 對以于項目實施為主的軟件公司(按項目定制開發),使用此平臺開發項目可以大大減少開發工作量。 (3) 咨詢人員:咨詢人員使用此平臺可以在很短的時間定制一個原型應用,因而使得在打單或需求調研過程中迅速給客戶展示一個應用系統模型。 (4) 企業用戶。使用此平臺使得在軟件公司的服務到期后,仍可以使用平臺來定制自己的新的業務應用,用戶新增加一個功能可不再依賴于軟件公司,從而真正做到隨需應變。 (5) 培訓機構。OpenJWeb平臺是一個不可多得的基于開源框架的快速Web應用開發平臺,一般IT培訓機構是很難獲取到這種具有實戰價值的代碼,針對 OpenJWeb平臺進行Java培訓一定可以使學員在相對短暫的培訓期間體驗到真正的企業級應用開發。 (6)個體創業者或者中小軟件公司。對于中小軟件公司是沒有資金去聘請一個專職的高級架構師,引入一個優秀的開源平臺進行軟件開發是他們最好的選擇。

1.5 OpenJWeb1.8版本的主要功能特點

本章節只介紹功能特點,具體的功能畫面和操作方法見《操作手冊》。

1.5.1 多語言支持

可在登錄后的系統首頁通過點語種連接來切換不同的語種(不過目前有許多頁面沒做文字翻譯,只翻譯了個別單詞可以看到語種切換的效果)。 表單列表頁面和編輯頁面的標簽支持多語,只需要在表字段定義中定義各語種文字,從平臺編譯代碼后,能自動生成對應的多語資源文件。

1.5.2 Portlet風格的首頁

帶Portlet風格的后臺首頁,可實現Portlet窗口的拖拉,目前設置了我的待辦任務,我的已辦任務等Portlet(目前尚未設計OA及工作流系統,所以Porlet中的信息目前是演示數據)。

1.5.3 在線編譯功能

通過平臺生成功能代碼后,不需要在IDE開發環境中執行代碼編譯,可直接在頁面中點“編譯代碼”,編譯完成后新代碼生效。

1.5.4 提供了定時器開發接口

平臺已提供了定時器的具體開發和配置的例子,用戶只需要在指定的定時期類中增加自己的新的定時器方法,并在Spring配置文件中稍作配置即可。

1.5.5 提供了郵件發送API調用接口

平臺已提供帶HTML格式的多附件發送調用API,利用這個API可很方便地實現郵件群發。

1.5.6 集成了FckEdit在線編輯器

本平臺提供了基于FckEdit的可視化的在線編輯器。

1.5.7 提供了業務邏輯組件接口和實現類的生成功能

當建表時,如果選擇生成業務邏輯組件,則自動生成業務邏輯接口和實現類。并自動在Spring配置文件中進行配置

1.5.8 支持基于JTA的跨數據庫事務

可實現跨數據庫的事務控制,當指定異常拋出時,可在兩個數據庫中同時回滾。

1.5.9 表結構管理

定義了表和表字段后,可生成數據庫表、Hibernate映射文件和Java實體類。表字段定義中可定義字段的類型,長度,是否非空,各語種標簽文字,使用哪些字段校驗器,默認值生成規則設置,表字段在列表頁面和編輯頁面是否顯示,顯示順序,表字段的輸入方式(輸入框,日期選擇,彈出窗口,下拉列表等多種輸入形式)、表字段是否為查詢條件字段等。 另外表字段維護中還增加了生成表字段功能,用于在表已經建立后,如果增加新的字段,就不再需要從開發環境中開發實體類,hibernate映射文件進行修改,也不需要打開數據庫管理工具增加新的字段,只需要在頁面上執行操作就可以完成以上內容。

1.5.10 代碼表管理

也稱數據字典管理,主要用于頁面上下拉列表的下拉選項的定義。例如職稱可定義001工程師,002高級工程師;用戶既可定義代碼表位于專用的數據字典表,也可以指定任意表的兩個字段作為代碼字段和名稱字段。如果同一類型的代碼不是很多(少于50條),可以用代碼表管理,代碼表的明細項如果太多,推薦專門建表維護,這時別的字段如參照使用本代碼表,應該使用彈出窗口進行選擇。

1.5.11 功能定義

可針對一個數據庫表創建單表增刪改查頁面。也可創建主明細表增刪改查頁面(可帶多個tab)。建主明細表時需要維護主表和明細表對照關系。在本頁面配置好功能相關屬性后,點“生成代碼”,可生成struts2的action配置文件,action控制層類,列表頁面,編輯頁面,彈出窗口選擇頁面(每個功能都有可能作為別的頁面字段的參照輸入)。如果此頁面中設置了要創建的表單類型(單表/主表/明細表),則可分別針對不同的表單類型創建對應風格的頁面。

1.5.12 數據權限定義

可指定一個表設置針對不同用戶的不同的數據權限,包括查詢權限,修改和刪除權限。

1.5.13 字段校驗器

平臺可從字段校驗器表中讀取字段校驗器類進行保存前的數據校驗。如果用戶開發了新的校驗器(需要實現校驗器接口),可錄入到數據庫中,然后在表字段定義中選擇性地綁定需要的校驗器。用戶還可以自己設置正則表達式校驗器。

1.5.14 查詢

平臺生成的頁面中有顯示在列表頁面查詢列,如果想增加或減少查詢列,只需要修改表字段定義中的是否查詢字段,將是否查詢條件設置為“否”,然后重新生成此功能的代碼即可。另外組合查詢中可定義定義組合查詢條件。本平臺的查詢條件字段的輸入方式是根據配置動態變化的,例如日期輸入型字段,則查詢條件自動顯示日期選擇器,如果是彈出窗口,自動顯示彈出按鈕,如果是下拉列表,查詢條件列自動檢索出列表項。

1.5.15 權限維護

維護一個權限樹。權限樹中可定義功能菜單權限,按鈕權限等。如果設置了URL,則沒有授權的用戶不能訪問URL,此表是Spring Security框架讀取權限信息的表,是權限框架的核心數據庫表。

1.5.16 公司基本信息維護

維護頂級法人公司列表。是組織結構樹的根,在這里可以錄入本公司,客戶公司。如客戶公司因業務需要需在本系統建立自己的組織結構和用戶,則需要在這里注冊公司信息。

1.5.16 組織結構維護

可選擇一個頂級公司維護組織結構樹,組織結構樹可定義行政部門、客戶、供應商、角色、崗位、業務組等多種類型組織結構,可以在一個組織結構下維護人員信息,同時也可以維護一個多對多的組織結構-人員關系,比如某個組織結構節點為角色,則可以將屬于此角色的人員添加進來。這樣形成了一個多對多的矩陣型組織結構 -人員關系,如果此組織結構被授予權限,則直屬此組織結構的人員可以獲得組織結構權限;另外,角色權限可以繼承,即上級角色可以具有下級角色的權限; 另外系統還可直接對人員授權。這樣一個人員的權限就包括了直接授權,從組織結構獲得權限,從角色型組織結構獲得權限及繼承權限,這樣構成了一個完整的授權體系。

1.5.17 EXCEL導出功能

通過OpenJWeb平臺生成的功能頁面中提供了針對此頁面數據的EXCEL導出功能,所以在本平臺中,針對單表的普通列表格式的EXCEL導出功能完全不再需要開發人員自己開發,這無疑節省了大量的EXCEL導出功能的開發時間。本平臺的EXCEL導出功能大致有以下幾個特點:

(1) 普通格式的EXCEL導出功能不再需要開發人員編寫代碼實現。通過平臺生成的增刪改查功能頁面都具有EXCEL導出功能。

(2) 可以由用戶自己定義導出的EXCEL表格的查詢條件。

(3) 可以由用戶定義EXCEL表格的標題文字、EXCEL中單元格的表頭文字、單元格對應的字段順序,可定義數據庫中哪些字段在EXCEL中顯示,哪些隱藏,這樣可以由用戶來控制單元格顯示順序及需要顯示那些內容。

(4) 因為數據庫表中很多字段存儲的是編碼,而EXCEL中需要顯示名稱,例如省份字段存儲的是0001,實際上此代碼映射的是北京市,所以在EXCEL表格中需要顯示出北京市。在本平臺中可以定義任一編碼字段對應的名稱,這個是通過設置一個SQL來查詢編碼對應的名稱。

1.5.18 EXCEL導入數據庫

通過平臺生成的增刪改查頁面具有EXCEL導出以及從EXCEL導入數據到數據庫中的功能。這樣就實現了通過EXCEL快速編輯數據的功能,在系統錄入大量數據的時候非常有用。由于每個頁面都由平臺生成了導入數據的按鈕和實現,所以使用本平臺開發新的功能不需要開發人員重復編寫EXCEL導入數據庫的代碼。 在操作EXCEL導入數據庫功能之前,可以先從平臺中導出數據,然后在導出的EXCEL文件中編輯,編輯完成后導入到數據庫中,系統在導入過程中會根據設置的業務主鍵來自動判斷哪些數據是新增的,哪些數據是在原來的基礎上修改的記錄,這樣系統可以自己選擇是插入一條新數據還是在原來的行上替換新的值。 如果EXCEL單元格中,有的值是名稱,錄入到數據庫需要反查編碼,例如EXCEL中的城市為“北京”,但在數據庫中“北京”的編碼是001,這樣 EXCEL導入數據庫時會自動將北京替換為001。

1.5.19 快速功能建模

OpenJWeb提供了功能菜單快速創建功能,菜單創建完成后,將菜單權限分配給用戶,很快就可以搭建一個新的子系統框架。只要頁面開發出來與菜單進行連接,并與權限綁定,功能模塊就可以使用了。 具體操作方法見用戶手冊。

1.5.20 站內全文檢索

OpenJWeb 集成了Lucene搜索引擎,并開發了html,txt,pdf,excel,word等格式的文件解析器。在OpenJWeb平臺中,當信息發布為靜態頁面后,靜態頁面會保存到一個公共目錄,平臺的后臺定時器可定時調用搜索引擎進行索引重建。所以每隔一段時間,發布的靜態頁面就可以通過搜索頁面按關鍵詞進行檢索。

1.5.21 Spring Security與單點登錄產品CAS

本平臺提供了Spring Security與CAS Server 3+的整合方式。如果用戶需要配置Spring Security和CAS Server,可參考web.xml.cas和applicationContext-security.xml.cas.用戶手冊里描述了部分配置過程。

1.5.22 樹型結構生成器

OpenJWeb平臺實現了樹型結構生成器,用戶可以在平臺定義一個樹型的表結構,并根據這個表生成一個樹型的增刪改查維護頁面,非常方便。這個功能解決了企業應用開發中樹型結構維護功能的開發難度大,周期長的問題,使用本平臺幾分鐘就可以創建一個增刪改查功能,并且不用編寫任何代碼。

1.5.23工作流支持

OpenJWeb平臺實現了工作流引擎,支持流程狀態設置、審批流設置、路由、條件設置、工作流定時器、工作流表單動態生成、待辦任務、郵件通知、單據打回處理。審批單可以顯示審批日志、單據狀態、并可根據參與者條件自動顯示可由當前人員審批的審批路線,審批單上還可以填寫審批意見等。

1.5.24 內容管理系統信息編輯與發布

在簡易審批流的支持下,平臺實現了信息審批流的配置,用戶使用Fckedit在線編輯器,在審批通過后,發布信息的同時可生成靜態的html頁面,信息發布前也可指定對應的欄目。靜態頁面的內容可被平臺的搜索引擎定時索引。

1.5.25 數據庫管理工具

平臺支持oracle,Sybase,sqlserver,mysql等多種數據庫,并提供了數據庫結構轉出功能、不同數據庫之間的數據完整復制功能、數據庫表結構文檔生成功能等。用戶可以很方便地利用本平臺將一種數據庫轉換為另外一種數據庫。

1.5.26 在線考試/在線調查系統

openjweb實現了在線考試/在線調查系統,可定義試卷,試題,標準答案,試題分數,試題類型支持單選,多選,簡答。選擇題支持計算機自動打分功能。

1.5.27 簡易的即時通信功能

平臺實現了簡單的即時通信功能,用戶可選擇其他人員進行在線聊天。

1.5.28 集成了Jforum論壇產品

Openjweb平臺實現了與jforum論壇進行單點登錄和單點退出功能。

1.5.29 多種開發實例

開發人員可以通過openjweb學習mvc的設計模式,郵件收發,excel 導入導出,spring security和cas集成模式,文件的上傳下載,blob圖片存儲,圖片驗證碼生成、字段校驗框架、權限管理框架、fckedit集成,ssh2等多種開發技巧。如果開發人員想快速超越同齡人,請關注、學習openjweb,并歡迎廣大開發人員為openjweb提出寶貴意見。如果您使用過其他的開源和商用快速開發工具,再來關注openjweb這個快速開發平臺,它會為您帶來更多的驚喜。

項目主頁:http://www.baiduhome.net/lib/view/home/1323608204389

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!