Java開源框架集[轉載]

原文:http://blog.myspace.cn/1305035574/archive/2008/04/03/400694243.aspx  

 Spring Framework 【Java開源 J2EE框架】

Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對接口編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作爲構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標準Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的複雜性,同時享受着和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。【SpringIDE:Eclipse平臺下一個輔助開發插件】.

 

 WebWork 【Java開源 Web框架】

 WebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是Rickard Oberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。 Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。 Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成Action(業務層Action類), session(會話)application(應用程序)範圍的映射,request請求參數映射。WebWork2支持多視圖表示,視圖部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了對AJAX的支持,這支持是構建在DWR與Dojo這兩個框架的基礎之上.【EclipseWork:用於WebWork輔助開發的一個Eclipse插件】

 

Struts 【Java開源 Web框架】

Struts是一個基於Sun J2EE平臺的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標籤和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】

 

 Hibernate 【Java開源 持久層框架】

Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平臺下的Hibernate輔助開發工具:【Hibernate Synchronizer】【MiddlegenIDE】

 

Quartz 【Java開源 日程安排(Job Schedulers)】

 Quartz是OpenSymphony開源組織在Job scheduling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或爲運行十個,百個,甚至是好幾萬個Jobs這樣複雜的日程序表。Jobs可以做成標準的Java組件或 EJBs。Quartz的最新版本爲Quartz 1.5.0。

 

 Velocity 【Java開源 模板引擎】

Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣爲web站點的長期維護提供了便利,同時也爲我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作爲其他系統的集成組件使用。Velocity也可以爲Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。 【VeloEclipse :Velocity在Eclipse平臺下的一個輔助開發插件】

 

IBATIS 【Java開源 持久層框架】

使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 “全自動”ORM機制而言,ibatis 以SQL開發的工作量和數據庫移植性上的讓步,爲系統 設計提供了更大的自由空間。作爲“全自動”ORM 實現的一種有益補充,ibatis 的出現顯 得別具意義。

 

 Compiere ERP 【Java開源 ERP與客戶關係管理】

 這一高價值的商業應用程序,易於安裝、易於實施、易於使用。只需要短短几個小時,您就可以使用申購-採購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關係、供應商關係、員工關係、經營業績分析等強大功能了!功能未減,實施時間縮減到 4 小時。最重要的是:這一高價值的商業應用程序是免費的!可以自行安裝和實施這套系統(如果您略懂 Oracle 和 Java 技術)。

中文站點:http://www.compiere-china.com/

 

Roller Weblogger 【Java開源 博客(Blog)】

這個weblogging 設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模板,RSS syndication,blogroll管理和提供一個XML-RPC 接口。

 

displytag 【Java開源 Jsp標籤庫】

與Struts結合使用最出名的一個tag主要是顯示錶格數據很漂亮、完善。

 

JFreeChart 【Java開源 報表製作】

JFreeChart它主要是用來製作各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分佈圖、混合圖、甘特圖以及一些儀表盤等等。

 

 Eclipse 【Java開源 開發工具】

 Eclipse平臺是IBM向開發源碼社區捐贈的開發框架,它之所以出名並不是因爲IBM宣稱投入開發的資金總數 —4千萬美元,而是因爲如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體系結構。

 

 Liferay 【Java開源 門戶系統】

代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特別是其前臺界面部分使用Struts 框架技術,基於XML的portlet配置文件可以自由地動態擴展,使用了Web Services來支持一些遠程信息的獲取,使用 Apahce Lucene實現全文檢索功能。

主要特點:

1、提供單一登陸接口,多認證模式(LDAP或SQL);

2、管理員能通過用戶界面輕鬆管理用戶,組,角色;

3、用戶能可以根據需要定製個性化的portal layout;

4、能夠在主流的J2EE應用服務器上運行,如JBoss+Jetty/Tomcat,JOnAS;

5、支持主流的數據庫,如PostgreSQL,MySQL;

6、使用了第三放的開源項目,如Hibernate, Lucene, Struts;

 7、支持包括中文在內的多種語言;

 8、採用最先進的技術 Java, EJB, JMS, SOAP, XML;

 

JetSpeed 【Java開源 門戶系統】

Jetspeed是一個開放源代碼的企業信息門戶(EIP)的實現, 使用的技術是Java和XML. 用戶可以使用瀏覽器, 支持WAP協議的手機或者其它的設備訪問Jetspeed架設的信息門戶獲取信息. Jetspeed扮演着信息集中器的角色, 它能夠把信息集中起來並且很容易地提供給用戶.

Jetspeed具有如下的特徵:

 * 即將成爲標準化的Java Portlet API

* 基於模板的佈局, 包括JSP和Velocity

 * 通過開放的內容同步技術支持遠程XML內容交換

* 定製默認的主頁 * 使用數據庫進行用戶認證

* 內存緩存技術, 加快頁面的響應

* 通過Rich Site Summary技術, 支持同步內容

* 和Cocoon, WebMacro, Velocity集成.

* Wireless Markup Language (WML) 支持

* 使用XML格式的配置文件註冊portlet.

* 完整的Web Application Archive (WAR) 支持

* Web應用程序開發的基礎設施

* 可以在本地緩存遠程內容

* 與Avantgo同步

* 可移植到所有支持JDK1.2和Servlet 2.2的平臺

* 與Turbine模塊和服務集成

* 可以根據用戶, 安裝媒體類型和語言的不同設定, 產生不同的個性化服務

 * 持續化服務使得所由的portlet能夠容易的存儲每個用戶的狀態, 頁面和portlet

 * 使用皮膚技術使得用戶可以選擇portlet的顏色和顯示屬性

* 自定義功能是的管理員可以選擇portlet以及定義個人頁面的佈局

* 在數據庫中存儲PSML

* 通過Jetspeed的安全portlets管理用戶, 組,角色和權限

* 基於角色對訪問portlet進行控制

 

JOnAS 【Java開源 EJB服務器】

 JOnAS是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成爲它的Web容器,以確保符合Servlet 2.3和JSP 1.2規範。JOnAS服務器依賴或實現以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。

 

Turbine 【Java開源 Web框架】

Turbine是基於Servlet的框架包,也是開放源代碼Jakarta項目。目前還沒有關於Turbine的大量文檔。它類似於Struts,但是有一些主要區別。突出的一點就是它並沒有與JSP耦合。Turbine的特點是它提供了大量可重用的組件。此框架包中包含了大量組件,但是這些組件是離散的。它似乎應該給出更多的組件庫,但是由於它缺少文檔,所以很難掌握完整的體系結構。

 

 Tapestry 【Java開源 Web框架】

 Tapestry是一個開源的基於servlet的應用程序框架,它使用組件對象模型來創建動態的,交互的web應用。一個組件就是任意一個帶有jwcid屬性的html標記。其中jwc的意思是Java Web Component。Tapestry使得java代碼與html完全分離,利用這個框架開發大型應用變得輕而易舉。並且開發的應用很容易維護和升級。Tapestry支持本地化,其錯誤報告也很詳細。Tapestry主要利用javabean和xml技術進行開發。【Spindle:Tapestry輔助開發Eclipse插件】.

 

Lucene 【Java開源 搜索引擎】

 Apache Lucene是一個開放源程序的搜尋器引擎,利用它可以輕易地爲Java軟件加入全文搜尋功能。Lucene的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自已需要自訂其功能。

 

 iText 【Java開源 PDF類庫】

 iText是一個能夠快速產生PDF文件的java類庫。iText的java類對於那些要產生包含文本,表格,圖形的只讀文檔是很有用的。它的類庫尤其與java Servlet有很好的給合。使用iText與PDF能夠使你正確的控制Servlet的輸出。

 

Beanshell 【Java開源 腳本語言】

Beanshell是用Java寫成的,一個小型的、免費的、可以下載的、嵌入式的Java源代碼解釋器,具有對象腳本語言特性。BeanShell執行標準Java語句和表達式,另外包括一些腳本命令和語法。它將腳本化對象看作簡單閉包方法(simple method closure)來支持,就如同在Perl和JavaScript中的一樣。 它具有以下的一些特點:使用Java反射API以提供Java語句和表達式的實時解釋執行;可以透明地訪問任何Java對象和API;可以在命令行模式、控制檯模式、小程序模式和遠程線程服務器模式等四種模式下面運行;與在應用程序中一樣,可以在小程序中(Applet)正常運行(無需編譯器或者類裝載器);非常精簡的解釋器jar文件大小爲175k

 

OpenCms 【Java開源 內容管理系統(CMS)】

 OpenCms是一個J2EE的產品,它是用Java寫成的。它和Tomcat捆綁在一起。但是也能夠使用ATG Dynamo、WebLogic和WebSphere。OpenCms支持多種RDBMS來保存內容,包括Oracle、SQL Server、Sybase和mySQL。新版本提供了一個新的模板引擎,JSP支持,一種新的連接管理系統,提高了穩定性。

 

 JUnit 【Java開源 Java測試工具】

 JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因爲程序員知道被測試的軟件如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。

 

opencrx 【Java開源 ERP與客戶關係管理】

 opencrx很容易與你現存的系統集成 (ERP, IVR, CTI, ...)是你對你以前投資的最大保護而且openCRX支持大多數通用技術,例如 RMI, CORBA, JMS, SOAP, 以及 JCA; openCRX也包括了支持典型插件的智能前臺,例如文檔管理,庫存跟蹤, 設備管理,等. openCRX 可以運行於任意J2EE兼容的應用服務器 (e.g. JBoss, BEA WebLogic or IBM WebSphere) 和主流數據庫 (e.g. MaxDB, Firebird, PostgreSQL, MS SQL, Oracle, or IBM DB2). 容易定製 基於 XML 的定製:徑直的,迅速的以及可行的(包括多語言特性) 容易擴展寫下你自己的工作流,或者發展可擴展的—得益於openCRX的基於組件的體系和像 J2EE,MDA 等的開放標準,這是一個很簡單的任務。(摘自http://www.opencrx.com.cn/crx/

 

BlueJ 【Java開源 開發工具】

BlueJ是一個專門爲入門級教學設計的JavaTM 開發環境。它是由澳大利亞墨爾本Monash大學BlueJ小組設計並開發的。 XWiki 【Java開源 Wiki引擎】 XWiki是一個強大的Java開源的Wiki引擎。

它支持一些受歡迎的特性如:

* 內容管理(瀏覽/編輯/預覽/保存),

* 支持附件,

* 版本控制,

 * 全文本搜索,

* 權限管理

* 使用Hibernate進行數據存儲,

* RSS輸出與顯示外部的RSS feeds,

* 多語言支持,

 * 提供XML/RPC的API,

* WYSIWYG HTML編輯器,

* 導出爲PDF

* Groovy腳本支持等等....。

 

EJBCA 【Java開源 網絡服務器】

 EJBCA是一個全功能的CA系統軟件,它基於J2EE技術,並提供了一個強大的、高性能並基於組件的CA。EJBCA兼具靈活性和平臺獨立性,能夠獨立使用,也能和任何J2EE應用程序集成。

 Laszlo 【Java開源 XML用戶界面工具包】

利用OpenLaszlo免費平臺可以快速地,簡單地開發漂亮Web 應用程序。這些Web應用程序可以運行在當前任何流行的瀏覽器與桌面操作系統。它只需要一個XML文件。【IDE4Laszlo:Eclipse下的輔助開發工具】

 

 JXTA 【Java開源 其它開源項目】

Sun微系統公司公開了旨在建立P2P(Peer to Peer)通用技術基礎的JXTA計劃。JXTA技術是網絡編程和計算的平臺,用以解決現代分佈計算尤其是點對點(P2P)計算中出現的問題。 JXTA將建立核心的網絡計算技術,提供支持在任何平臺、任何地方以及任何時間實現P2P計算的一整套簡單、小巧和靈活的機制。JXTA首先將歸納目前P2P的功能特別,而後建立核心的技術來表達目前的P2P計算的侷限性。其重點是創建基本的機制,而具體的策略選擇權則交給應用的開發者。JXTA將充分利用XML、Java等開放技術,使得UNIX操作系統更強大和靈活,比如利用管道(Pipes)傳輸Shell命令實現複雜的計算任務。JXTA支持P2P應用的基本功能來建立一個P2P系統,還將努力證實這些可以成爲建立更高層功能的基礎構造模塊。JXTA架構可以分爲三個層面:JXTA核心層、JXTA業務層和JXTA應用層。



更多內容,請見我的博客:“地瓜哥”,http://www.diguage.com/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章