主要就我所瞭解的J2EE開發的框架或開源項目作個介紹,能夠根據需求選用適當的開源組件進行開發。主要仍是以Spring爲核心,也總結了一些之前web開發經常使用的開源工具和開源類庫javascript
這個不用介紹了,用的很頻繁,用的比較多的是映射,包括繼承映射和父子表映射html
對於DAO在這裏介紹個在它基礎上開發的包bba96,目前最新版本是bba96 2.0它對Hibernate進行了封裝, 查詢功能包括執行hsql或者sql查詢/更新的方法,若是你要多層次邏輯的條件查詢能夠本身組裝QueryObject.能夠參考它作HibernateDAO.也能夠直接利用它java
另外一個ORM工具,Apache的,沒有Hibernate那麼集成,自由度比較大web
Spring的配置文件默認爲WEB-INF/xxxx-servelet.xm其中xxx爲web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name.ajax
Spring將按照配置文件定義的URL,Mapping到具體Controller類,再根據URL裏的action= xxx或其餘參數,利用反射調用Controller裏對應的Action方法。spring
Spring提供Binder 經過名字的一一對應反射綁定Pojo,也能夠直接從request.getParameter()取數據。sql
Sping 提供了Validator接口固然還可使用開源的Commons-Validaor支持最好緩存
Spring的攔截器提供接口須要本身編寫,在這點不如WebWork作的好。全面安全
(這裏提一下WebWork和Struts的區別最主要的區別在於WebWork在創建一個Action時是新New一個對象而Struts是SingleMoule全部的都繼承它的一個Action,因此根據項目須要合適的選擇。)服務器
因爲Webwork或Spring的標籤確實頗有限,通常view層用JSTL標籤,並且聽說JSTL設計很好速度是全部標籤中最快的使用起來也很簡單
Dojo主要提供Tree, Tab等富客戶端控件,能夠用其進行輔助客戶端開發
YahooUI和DOJO同樣它有本身的一套javascript調試控制檯,主要支持ajax開發也有不少Tree,Table,Menu等富客戶端控件
FCKEditor 最流行的文本編輯器
Coolest日曆控件 目前不少日曆控件可用,集成在項目中也比較簡單,這個只是其中的一個,界面不錯的說……
Prototype.js做爲javascript的成功的開源框架,封裝了不少好用的功能,經過它很容易編寫AJAX應用,如今AJAX技術逐漸成熟,框架資源比較豐富,好比YUI,DWR等等,也是由於JavaScript沒有合適的調試工具,因此沒有必要從零開始編寫AJAX應用,我的認爲多用一些成熟的Ajax框架實現無刷新更新頁面是不錯的選擇。
這兩個的功能差很少,都是View層表格的生成,界面也比較相向,能夠導出Excel,Pdf,對Spring支持很容易。
相比較而言比較推薦ExtremeTable,它的設計很好功能上比DisplayTag多一些,支持Ajax,封裝了一些攔截器,並且最方面的是在主頁wiki中有詳細的中文使用文檔。
OSCache是OpenSymphony組織提供的一個J2EE架構中Web應用層的緩存技術實現組件,Cache是一種用於提升系統響應速度、改善系統運行性能的技術。尤爲是在Web應用中,經過緩存頁面的輸出結果,能夠很顯著的改善系統的穩定性和運行性能。
它主要用在處理短期或必定時間內一些數據或頁面不會發生變化,或將一些不變的統計報表,緩衝在內存,能夠充分的減輕服務器的壓力,防治負載平衡,快速重啓服務器(經過硬盤緩存)。
sitemesh應用Decorator模式主要用於提升頁面的可維護性和複用性,其原理是用Filter截取request和response,把頁面組件head,content,banner結合爲一個完整的視圖。一般咱們都是用include標籤在每一個jsp頁面中來不斷的包含各類header, stylesheet, scripts and footer,如今,在sitemesh的幫助下,咱們刪掉他們輕鬆達到複合視圖模式。
Sitemesh也是 OpenSymphony的一個項目如今最近的版本是2.2,目前OpenSymphony自從04年就沒有更新的版本了……感受它仍是比較有創新的一種頁面組裝方式, OpenSymphony開源組織的代碼通常寫的比較漂亮,能夠改其源代碼對本身的項目進行適配。
測試發現Sitemesh還存在一些問題,好比中文問題,它的默認編碼是iso-8859-1在使用時候須要作一些改動。
這個不用說了,遵循W3C標準的web頁面開發。
Pager-taglib 是一套分頁標籤庫,能夠靈活地實現多種不一樣風格的分頁導航頁面,而且能夠很好的與服務器分頁邏輯分離。使用起來也比較簡單。
Jodd Form taglib使用比較簡單,只要把html的頭尾以form包住,就會自動綁定mybean, 自動綁定mybean的全部同名屬性到普通html標記input, selectbox, checkbox,radiobox……在這些input框裏不用再寫任何代碼…
J2EE應用最經常使用的ajax框架
Eclipse BIRT功能比較強大,也很龐大……好幾十M,通常沒有特別需求或別的圖表設計軟件能夠解決的不用它
JasperReports+ iReport是一個基於Java的開源報表工具,它能夠在Java環境下像其它IDE報表工具同樣來製做報表。JasperReports支持PDF、HTML、XLS、CSV和XML文件輸出格式。JasperReports是當前Java開發者最經常使用的報表工具。
JFreeChart主要是用來製做各類各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分佈圖、混合圖、甘特圖以及一些儀表盤等等。
琴棋報表,國產的……重點推薦,適合中國的狀況,開放源代碼,使用徹底免費。純JAVA開發,適用多種系統平臺。特別適合B/S結構的系統。官方網站有其優勢介紹,看來用它仍是不錯的選擇,最重要的是支持國產呵呵
Acegi是Spring Framework 下最成熟的安全系統,它提供了強大靈活的企業級安全服務,如完善的認證和受權機制,Http資源訪問控制,Method 調用訪問控制等等,支持CAS
(耶魯大學的單點登錄技術,這個單點登錄方案比較出名。我也進行過配置使用,能夠根據項目須要,若是用戶分佈在不一樣的地方不一樣的系統通用一套登錄口令能夠用它進行解決,通常註冊機登錄機就是這樣解決的)
Acegi只是於Spring結合最好的安全框架,功能比較強大,固然還有一些其餘的安全框架,這裏列舉一些比較流行的是我從網上找到的,使用方法看其官方文檔把…
JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架……真夠多的呵呵
Lucene是一套全文索引接口,能夠經過它將數據進行倒排文件處理加入索引文件,它的索引速度和查詢速度是至關快的,查詢百萬級數據毫秒級出結果,如今最火的Apache開源項目,版本更新速度很快如今已經到了2.0,每一個版本更新的都比較大,目前用的最多的版本應該是1.4.3,但它有個不太方面的地方單個索引文件有2G文件限制,如今2.0版本沒有這個限制,我研究的比較多,它的擴展性比較好,能夠很方面的擴充其分詞接口和查詢接口。
基於它的開發的系統不少,好比最經常使用的Eclipse的搜索功能,還有一些開源的軟件好比Compass,Nutch,Lius,還有我最近作的InSearch(企業級FTP文件網頁搜索)
主要是Jakarta-Commons類庫,其中最經常使用得是如下幾個類庫
最經常使用得類是StringUtils類,提供了使用的字符串處理的經常使用方法效率比較高
主要用Beantuils可以得到反射函數封裝及對嵌套屬性,map,array型屬性的讀取。
裏面有不少Utils方法
Log4J
任務是日誌記錄,分爲Info,Warn,error幾個層次能夠更好的調試程序
Appfuse是Matt Raible 開發的一個指導性的入門級J2EE框架, 它對如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基礎框架給出了示範。 在持久層,AppFuse採用了Hibernate O/R映射工具;在容器方面,它採用了Spring,用戶能夠自由選擇Struts、Spring/MVC,Webwork,JSF這幾個Web框架。
。SpringSide較完整的演示了企業應用的各個方面,是一個電子商務網站的應用 SpringSide也大量參考了Appfuse中的優秀經驗。最重要的是它是國內的一個開源項目,能夠了解到國內如今的一些實際技術動態和方向頗有指導意義…
主要有Veloctiy和Freemarker
模板用Servlet提供的數據動態地生成 HTML.編譯器速度快,輸出接近靜態HTML 頁面的速度。
我所知道比較出名的主要有JBpm Shark Osworkflow,因爲對它沒有過多的研究因此還不是很清楚之間有什麼區別。
dotProject:是一個基於LAMP的開源項目管理軟件。最出名的項目管理軟件
JIRA: 項目計劃,任務安排,錯誤管理
Bugzilla:提交和管理bug,和eclipse集成,能夠經過安裝MyEclipse配置一下便可使用
BugFree借鑑微軟公司軟件研發理念、免費開放源代碼、基於Web的精簡版Bug管理
CVS:這個就不介紹了都在用。
SVN: SubVersion已逐漸超越CVS,更適應於JavaEE的項目。Apache用了它好久後,Sourceforge剛剛推出SVN的支持。
測試用例:主要JUnit單元測試,編寫TestCase,Spring也對Junit作了很好的支持