sourceforge http://www.sourceforge.net
java.net http://www.java.net
Lomboz http://www.objectlearn.com/index.jsp (J2EE plugin for Eclipse)
htmlArea http://sourceforge.net/projects/itools-htmlarea/ (所見即所得的在線HTML編輯器)
XmlBuddy http://www.xmlbuddy.com/ (XML Editor plugin for Eclipse)
JFreeChart http://www.jfree.org/ (用于生成圖表的項目)
EclipseME http://eclipseme.sourceforge.net/ (J2ME Developmnt Plugin for Eclipse)
mvnForum http://sourceforge.net/projects/mvnforum/ (論壇)
jChatBox http://www.javazoom.net/index.shtml (用servlet實現(xiàn)的WEB聊天引擎)
POI http://jakarta.apache.org/poi/index.html (用于處理Excel,WORD等文檔的項目)
FileUpload http://jakarta.apache.org/commons/fileupload/ (用于處理HTTP文件上傳得項目)
PDFBox http://sourceforge.net/projects/pdfbox/ (處理PDF文檔的項目)
Lucene http://jakarta.apache.org/lucene/index.html (搜索引擎)
Digester http://jakarta.apache.org/commons/digester/ (處理XML信息的項目)
DBCP http://jakarta.apache.org/commons/dbcp/ (數(shù)據(jù)庫連接池)
AXIS http://ws.apache.org/axis/ (WebService 的實現(xiàn)框架)
Jetspeed http://portals.apache.org/jetspeed-1/ (Portal)
HSQLDB http://sourceforge.net/projects/hsqldb/ (Im memory Database Engine)
CEWOLF http://sourceforge.net/projects/cewolf/ (一套標簽庫實現(xiàn)Web報表,使用的是jFreeChart引擎)
Struts Menu http://sourceforge.net/projects/struts-menu/ (基于Struts的Web菜單項目)
htmlparser http://sourceforge.net/projects/htmlparser/ (用于解析HTML信息的項目)
Mondrian http://sourceforge.net/projects/mondrian/(Open Source OLAP Database)
ProGuard http://sourceforge.net/projects/proguard/(Java的混淆器)
InfoGlue http://sourceforge.net/projects/infoglue/ (J2EE 內(nèi)容管理系統(tǒng))
JPivot http://sourceforge.net/projects/jpivot/ (基于WEB的OLAP 展現(xiàn))
http://java-source.net/
高效率開發(fā)、易用、功能穩(wěn)定、執(zhí)行效率高、維護成本低、需求變更是軟件開發(fā)遵循的守則,然而現(xiàn)實中我們面臨各種各樣的問題:
1. 程序員A,程序員B開發(fā)同樣的功能,理解不同、開發(fā)用時、及開發(fā)質(zhì)量良莠不齊,延遲交付時間普遍。相反監(jiān)督者需要花費更多精力與時間可以彌補,加大投入成本。
2. 后期維護成本高,如由于測試跟不上BUG檢測不到、需求變更等。
3. 同行競爭的壓力,如A公司開發(fā)模塊實際時間10工作日、B公司開發(fā)模塊實際時間15工作日,競標會處于劣勢。
4. 隨著公司業(yè)務擴展,項目繁多,招攬人員越多、管理難度越大等因素日漸凸顯,造成企業(yè)發(fā)展的瓶頸。
5. 人員的培養(yǎng)需要大量成本,與人員的不穩(wěn)定性因素對企業(yè)造成損失較大,如人員請假、離職等。
6. 開發(fā)—測試—QA—用戶測試—試運營—運營,是軟件開發(fā)中耗費成本巨大的一個循環(huán)過程鏈,制約企業(yè)發(fā)展。
上述是據(jù)個人經(jīng)驗總結,Db2view是針對上述問題的一個解決方案。
Db2view是以高效、穩(wěn)定、易用、低成本維護為目的所研制的一套輕量級非入侵式、自動化開發(fā)平臺。兼容多種架構,如SSH、struts—spring—ibatis等容易集成到系統(tǒng),根據(jù)多年的行業(yè)經(jīng)驗,高效的針對各行業(yè)業(yè)務特點,最大化減少建設與維護成本。目前已在多個項目實施,不斷完善。
2.1 Db2view總體架構圖
Db2view:根據(jù)編寫的SQL,在所有元素據(jù)中,勾選需要顯示的元素據(jù)列,即可生成自定義顯示列表。
如select school_id,school_name,school_code, school_manager from school
然后在配置界面勾選school_name, school_manager字段,則顯示的列表為:
school_name |
school_manager |
廣東廣雅中學 |
黃光裕 |
廣州先烈東小學 |
王興東 |
查詢:在SQL里涉及并且勾選的元素據(jù)字段中,可以選擇是否作為查詢的字段,勾選后該列成為查詢項,如果是時間字段還可以進行時間區(qū)間查詢的選擇。
排序:列表中的每個字段都可以進行升序與降序的排列功能。
自定義字段名:對每個列名稱進行界面配置,如勾選school_name、school_manager字段,可以對school_name定義顯示列名為:學校名稱、school_manager顯示列名為:學校管理員,修改后列表顯示如下:
學校名稱 |
學校管理員 |
廣東廣雅中學 |
黃光裕 |
廣州先烈東小學 |
王興東 |
轉(zhuǎn)義詞:數(shù)據(jù)庫中記錄男女使用0,1表示,而界面需要顯示為男女文字的信息,使用轉(zhuǎn)義詞可以達到效果。
刪除:界面化配置是否需要刪除功能,刪除指定字段的表記錄。
操作:所有列表均可以添加外部操作(如增加、批量刪除)與行內(nèi)操作(編輯、刪除),由此構成一個完整的業(yè)務功能。(示例見演示視頻)
數(shù)據(jù)導出:界面化配置是否需要excel數(shù)據(jù)導出功能,根據(jù)查詢的條件顯示的數(shù)據(jù),可選擇導出當前所見數(shù)據(jù)與所有滿足條件的數(shù)據(jù)兩個選擇。
模板定制:界面化配置模板,方便為不同的客戶需求定制不同的顯示模板。
換膚:界面化配置皮膚,每個模板依據(jù)規(guī)范可以有不同的皮膚更換功能。
數(shù)據(jù)安全:加入訪問權限控制規(guī)則,保障功能數(shù)據(jù)安全性。(待實現(xiàn))
3.1 優(yōu)點
(1)高效率開發(fā):db2view平臺開發(fā)工具采用全界面配置,編寫業(yè)務SQL,簡單配置,即可完成。列表功能開發(fā)以分鐘計時,15分鐘可以完成一個高質(zhì)量列表的功能開發(fā)。
(2)易用性:界面編寫SQL,然后配置即可得到一個界面友好,高質(zhì)量的功能列表。將傳統(tǒng)程序員需要熟悉各種復雜的技術框架解放出來,專注于業(yè)務邏輯,大大降低企業(yè)由于人員離職或其他情況所帶來的損失。
(3)功能穩(wěn)定:所有功能使用統(tǒng)一內(nèi)核,經(jīng)過多個項目的迭代驗證其穩(wěn)定性、可靠性。
(4)低成本維護: 所有的功能需要維護的只有業(yè)務SQL與配置文件,最大化的減少維護的成本。
比較現(xiàn)今流行的SSH架構開發(fā)流程:
維護成本是流程涉及的內(nèi)容,成本花費高。
Db2view開發(fā)流程:
維護成本只有業(yè)務SQL與配置文件,易于維護。
(5)快速響應需求變更:如業(yè)務更改字段名、添加或刪除顯示字段、
添加查詢字段、功能刪除等維護工作都能夠在極短的時間內(nèi)響應。
(6)無需重啟服務器:功能的生成與修改實時生效,無需重啟服務器。
3.2 缺點
(1) 平臺仍需完善,暫不能夠滿足所有業(yè)務需求界面化
(2) 平臺操作友好性仍待提高,如轉(zhuǎn)義詞的添加、新添加配置等
數(shù)據(jù)庫:ORACLE 10G以上版本
語言:JAVA
JDK版本:1.4以上
服務器:Tomcat,JBoss,Resin,WebSphere,WebLogic等主流服務器。
根據(jù)開發(fā)模式分為兩種部署方式。
面向服務式模式:
作為分布式服務器對外提供服務,生成功能鏈接嵌入應用系統(tǒng)。該模式的優(yōu)點:
1. 對應用系統(tǒng)完全無入侵,100%輕量級開發(fā)。
2. 產(chǎn)品升級調(diào)試簡單。
缺點:
1. 需要開放應用的數(shù)據(jù)庫訪問權限。
2. 涉及操作并有關聯(lián)動作:如刪除功能在A系統(tǒng)開發(fā),B系統(tǒng)是Db2view,關聯(lián)頁面需要設置同域方能進行交互。
3. 安全性相對另一種模式低。
組件模式:
作為組件集成到開發(fā)項目中,容易管理,安全性也高。
優(yōu)點:
安全性高,可根據(jù)開發(fā)系統(tǒng)的權限要求做安全性控制
缺點:
升級調(diào)試相對復雜。
5分鐘生成功能例子,對此工具有興趣者請加群:12990321.
現(xiàn)象一:
錯誤信息:
java.lang.SecurityException: sealing violation: can't seal package oracle.jdbc.driver: already loaded
原因:
was啟動的lib里存在多個ORACLE DRIVER。
解決:
保留最新的一個驅(qū)動包解決。
遺留問題:
開發(fā)環(huán)境使用TOMCAT發(fā)布無此問題,JBUILDER2006開發(fā)中包是有優(yōu)先順序的,即使存在多個
相同的類,優(yōu)先選擇第一個找到的類。WAS在這方面顯然存在不足,排異容錯性不夠強大。
現(xiàn)象二:
錯誤信息:
Error 500: LinkageError while defining class: com.gzedu.eecn.structure.login.action.UserLoginAction Could not be defined due to: com/gzedu/eecn/structure/login/action/UserLoginAction (Illegal constant pool type) This is often caused by having a class defined at multiple locations within the classloader hierarchy. Other potential causes include compiling against an older or newer version of the class that has an incompatible method signature. Dumping the current context classloader
原因:
上傳的文件已經(jīng)損壞。重復試過很多次,發(fā)現(xiàn)本機器通過SSH上傳過程中文件已經(jīng)損壞。
屬于本機問題。
解決:
通過同事的機器上傳文件解決
總結:
類似此問題出現(xiàn)的幾率很小,可以認為是相同的環(huán)境,使用相同的方式做一件事情也有可能出現(xiàn)
不同的效果。再次出現(xiàn)類似問題可以更快的定位錯誤點。
現(xiàn)象三:
錯誤信息:
com.ibm.ws.jsp.translator.JspTranslationException: JSPG0227E: 轉(zhuǎn)換 /login.jsp:
/login.jsp(1,1) --> JSPG0145E: 未知 JSP 元素:jsp:directive.pagelanguage
原因:
windows環(huán)境、tomcat作為服務器開發(fā),部署到sit、unix環(huán)境,會出現(xiàn)頁面不同的開發(fā)環(huán)境會
有中文問題,或是說重復定義encoding的問題頁面編碼問題。
解決:
按照如下進行修改和配置;
1. 對于不是被include的頁面必須使用;
<%@ page contentType="text/html;charset=GBK" pageEncoding="GBK" language="java" %>
。 大寫GBK
2. 對于被Include的頁面必須使用如下;
。<%@ page pageEncoding="GBK" language="java" %>
注:在TOMCAT4.1.30-->was5.0,6.0出現(xiàn)此問題