下面我將為大家總結一下Java部分的框架和開源項目,讓您從總的方面對Java部分框架有一定的了解。
Spring Framework【Java開源JEE框架】
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對接口編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的 InversionofControl容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/Rmapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如 JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的ASPects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVCWeb框架。【SpringIDE:Eclipse平台下一個輔助開發插件】
WebWork【Java開源web開發框架】
WebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EEWeb框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是RickardOberg開發的 WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。Xwork簡潔、靈活功能強大,它是一個標准的 Command模式實現,並且完全從web層脫離出來。Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL–theObjectGraphNotationLanguage),IoC(InversionofControl倒置控制)容器等。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是一個基於SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(messageresources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】
Hibernate【Java開源持久層框架】
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的 Hibernate輔助開發工具:【HibernateSynchronizer】【MiddlegenIDE】
Quartz 【Java開源調度框架】
Quartz是OpenSymphony開源組織在Jobscheduling領域又一個開源項目, 它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。Jobs可以做成標准的Java組件或EJBs。Quartz的最新版本為Quartz1.5.0。
Velocity 【Java開源模板引擎】
Velocity是一個基於java的模板引擎(templateengine)。它允許任何人僅僅簡單的使用模板語言(templatelanguage)來引用由java代碼定義的對象。當Velocity應用於web開發時,界面設計人員可以和 java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由Java程序開發人員關注業務邏輯編碼。Velocity將Java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbineweb開發架構提供模板服務 (templateservice)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。【VeloEclipse:Velocity在Eclipse平台下的一個輔助開發插件】
iBATIS【Java開源持久層框架】
使用ibatis提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象,這一層與通過 Hibernate實現ORM而言基本一致,而對於具體的數據操作,Hibernate會自動生成SQL語句,而ibatis則要求開發者編寫具體的 SQL語句。相對Hibernate等“全自動”ORM機制而言,ibatis以SQL開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。作為“全自動”ORM實現的一種有益補充,ibatis的出現顯得別具意義。
CompIEreERP&CRM 【Java開源ERP與CRM系統】
CompIEreERP&CRM為全球范圍內的中小型企業提供綜合型解決方案,覆蓋從客戶管理、供應鏈到財務管理的全部領域,支持多組織、多幣種、多會計模式、多成本計算、多語種、多稅制等國際化特性。易於安裝、易於實施、易於使用。只需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關系、供應商關系、員工關系、經營業績分析等強大功能了。
RollerWeblogger【Java開源Blog博客】
這個 weblogging設計得比較精巧,源代碼是很好的學習資料。它支持weblogging應有的特性如:評論功能,所見即所得Html編輯,TrackBack,提供頁面模板,RSSsyndication,blogroll管理和提供一個XML-RPC接口。
Eclipse【Java開源IDE】
Eclipse平台是IBM向開發源碼社區捐贈的開發框架,它之所以出名並不是因為 IBM宣稱投入開發的資金總數—4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體系結構。
XPlanner【Java開源項目管理】
XPlanner一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如 iteration、userstories等,XPlanner都提供了相對應的的管理工具,XPlanner支持XP開發流程,並解決利用XP思想來開發項目所碰到的問題。XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtualnotecards),iterations、 userstories與工作記錄的追蹤,未完成storIEs將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支持。
HSQLDB【Java開源開源數據庫】
HSQLDB(HypersonicSQL)是純Java開發的關系型數據庫,並提供JDBC驅動存取數據。支持ANSI-92標准SQL語法。而且他占的空間很小。大約只有160K,擁有快速的數據庫引擎。
Liferay 【Java開源門戶系統】
代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特別是其前台界面部分使用 Struts框架技術,基於XML的portlet配置文件可以自由地動態擴展,使用了WebServices來支持一些遠程信息的獲取,使用 ApahceLucene實現全文檢索功能。
主要特點:
◆提供單一登陸接口,多認證模式(LDAP或SQL)
◆管理員能通過用戶界面輕松管理用戶,組,角色
◆用戶能可以根據需要定制個性化的portallayout
◆能夠在主流的J2EE應用服務器上運行,如 JBoss+Jetty/Tomcat,JOnAS
◆支持主流的數據庫,如PostgreSQL,MySQL
◆使用了第三放的開源項目,如Hibernate,Lucene,Struts
◆支持包括中文在內的多種語言
◆采用最先進的技術Java,EJB,JMS,SOAP,XML
JetSpeed【Java開源門戶系統】
Jetspeed是一個開放源代碼的企業信息門戶(EIP)的實現,使用的技術是Java和XML.用戶可以使用浏覽器,支持WAP協議的手機或者其它的設備訪問Jetspeed架設的信息門戶獲取信息.Jetspeed扮演著信息集中器的角色,它能夠把信息集中起來並且很容易地提供給用戶。
Jetspeed具有如下的特征:
◆即將成為標准化的JavaPortletAPI
◆基於模板的布局,包括JSP和Velocity
◆通過開放的內容同步技術支持遠程XML內容交換
◆定制默認的主頁
◆使用數據庫進行用戶認證
◆內存緩存技術,加快頁面的響應
◆通過 RichSiteSummary技術,支持同步內容
◆和Cocoon,WebMacro,Velocity集成
◆WirelessMarkupLanguage(WML)支持
◆使用XML格式的配置文件注冊portlet
◆完整的WebApplicationArchive(WAR)支持
◆Web應用程序開發的基礎設施
◆可以在本地緩存遠程內容
◆與Avantgo同步
◆可移植到所有支持JDK1.2和Servlet2.2的平台
◆與 Turbine模塊和服務集成
◆可以根據用戶,安裝媒體類型和語言的不同設定,產生不同的個性化服務
◆持續化服務使得所由的portlet能夠容易的存儲每個用戶的狀態,頁面和portlet
◆使用皮膚技術使得用戶可以選擇portlet的顏色和顯示屬性
◆自定義功能是的管理員可以選擇portlet以及定義個人頁面的布局
◆在數據庫中存儲PSML
◆通過Jetspeed的安全portlets管理用戶,組,角色和權限
◆基於角色對訪問portlet進行控制
JOnAS 【Java開源應用服務器】
JOnAS是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合 Servlet2.3和JSP1.2規范。JOnAS服務器依賴或實現以下的JavaAPI:JCA、JDBC、JTA、JMS、 JMX、JNDI、JAAS、JavaMail。
JFox3.0【Java開源應用服務器】
JFox是 OpenSourceJavaEEApplicationServer,致力於提供輕量級的JavaEE應用服務器,從3.0開始,JFox提供了一個支持模塊化的MVC框架,以簡化 EJB以及Web應用的開發!如果您正在尋找一個簡單、輕量、高效、完善的JavaEE開發平台,那麼JFox正是您需要的。
JFox3.0 擁有以下特性:
◆重新設計的IoC微內核,融入OSGi模塊化思想
◆設計成嵌入式架構,能夠和任何 JavaWebServer集成部署
◆支持EJB3,JPA規范,支持容器內和容器外兩種方式運行EJB和JPA組件
◆支持EJB發布成WebService
◆采用JOTM(http://jotm.objectweb.org/)提供事務處理,支持兩階段提交(2PC)
◆采用XAPool(http://forge.objectweb.org/projects/xapool/) 提供XADataSource,支持智能連接池管理
◆內置MVC框架,實現自動 FormMapping,Validator,Uploading等功能,支持JSP/Velocity/Freemarker頁面引擎,並支持直接在 Action中注入EJB
◆支持多應用模塊部署,讓中大型應用充分享受模塊化開發帶來的優勢
◆提供Manager管理模塊,可以查看和管理各種運行時參數
◆提供根據JFox特色重寫的Petstore應用模塊
EasyJWeb【Java開源web開發框架】
EasyJWeb是基於Java技術,應用於WEB應用程序快速開發的MVC 框架,框架設計構思來源於國內眾多項目實踐,框架充分借簽了當前主要流行的開源Web框架(Struts、JSF、Tapestry、Webwork),吸取了其優點及精華,利用Velocity作為模板頁面引擎,是一個實現了頁面及代碼完全分離的MVC開發框架。是一個能實現中小型Web應用系統快速開發的簡易Web框架。
通過EasyJWebTools提供的配套開發工具,可以實現基於EasyJWeb框架的Web應用快速開發,包括常用應用軟件的代碼自生成、數據庫添刪改查(CRUD)代碼生成、自動頁面模版生成、配置文件管理等。
框架特點:
◆零配文件置支持。以前我們每接觸一個框架,開始總都要被他的配置文件折騰一番。EasyJWeb實現零配置支持,可以不寫一句配置文件就在框架基礎上構建你的運用。(適合小型網站系統)。
◆簡易的模板頁面設計支持:放棄使用JSP,使用簡單Velocity腳本語言作為頁面模板。
◆頁面程序完全分離:實現顯示頁面與程序邏輯的完全分離,克服了傳統JSP頁面難於維護的問題。
◆基於頁面組件的框架。靈活的頁面組件配置,可以直接通過配置文件設置字段級的事件組件。
◆快速開發支持:通過EasyJWebTools,可以自動生成應用軟件模板代碼,定制並管理自己的J2EE代碼模板,代碼生成模板支持最流行的實用Java開發框架(如hibernate、Spring等)實現快速開發。
Tapestry【Java開源web開發框架】
Tapestry是一個開源的基於servlet的應用程序框架,它使用組件對象模型來創建動態的,交互的web應用。一個組件就是任意一個帶有jwcid屬性的html標記。其中jwc的意思是 JavaWebComponent。Tapestry使得java代碼與Html完全分離,利用這個框架開發大型應用變得輕而易舉。並且開發的應用很容易維護和升級。Tapestry支持本地化,其錯誤報告也很詳細。Tapestry主要利用Javabean和XML技術進行開發。【Spindle:Tapestry輔助開發Eclipse插件】
FreeMarker【Java開源模板引擎】
FreeMarker允許Javaservlet保持圖形設計同應用程序邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的數據動態地生成HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態Html頁面的速度。【FreeMarkerEclipsePlugin與 FreeMarkerIDE:Eclipse平台下的輔助開發工具】
Lucene【Java開源搜索引擎】
apacheLucene是一個基於Java全文搜索引擎,利用它可以輕易地為Java軟件加入全文搜尋功能。Lucene的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自已需要自訂其功能。
iText【Java開源PDF類庫】
iText是一個能夠快速產生PDF文件的java類庫。iText的java類對於那些要產生包含文本,表格,圖形的只讀文檔是很有用的。它的類庫尤其與JavaServlet有很好的給合。使用iText與PDF能夠使你正確的控制Servlet的輸出。
Groovy 【Java開源動態語言】
Groovy是一種基於JVM的敏捷開發語言,它結合了Python、Ruby和Smalltalk 的許多強大的特性。Groovy已在WebWork2中的應用。它可以被編譯為標准的JavaBytecode。
OpenCms 【Java開源CMS系統】
OpenCms是一個J2EE的產品,它是用Java寫成的。它和Tomcat捆綁在一起。但是也能夠使用ATGDynamo、WebLogic和WebSphere。OpenCms支持多種RDBMS來保存內容,包括Oracle、 SQLServer、Sybase和MySQL。新版本提供了一個新的模板引擎,JSP支持,一種新的連接管理系統,提高了穩定性。
JUnit 【Java開源測試工具】
JUnit是由ErichGamma和KentBeck編寫的一個回歸測試框架 (regressiontestingframework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。
BlueJ【Java開源IDE】
BlueJ是一個專門為入門級教學設計的JavaTM開發環境。它是由澳大利亞墨爾本 Monash大學BlueJ小組設計並開發的。
XWiki【Java開源Wiki系統】
XWiki是一個強大的Java開源的Wiki引擎。它支持一些受歡迎的特性如:
◆內容管理(浏覽/編輯/預覽/保存)
◆支持附件
◆版本控制
◆全文本搜索
◆權限管理
◆使用Hibernate進行數據存儲
◆RSS輸出與顯示外部的RSSfeeds
◆多語言支持
◆提供XML/RPC的API
◆WYSIWYGHtml編輯器
◆導出為PDF
◆Groovy腳本支持等等....
EJBCA【Java開源網絡服務器端組件】
EJBCA是一個全功能的CA系統軟件,它基於J2EE技術,並提供了一個強大的、高性能並基於組件的CA。EJBCA兼具靈活性和平台獨立性,能夠獨立使用,也能和任何J2EE應用程序集成。
JXTA【Java開源其它項目】
Sun微系統公司公開了旨在建立P2P(PeertoPeer)通用技術基礎的JXTA計劃。JXTA技術是網絡編程和計算的平台,用以解決現代分布計算尤其是點對點(P2P)計算中出現的問題。
JXTA將建立核心的網絡計算技術,提供支持在任何平台、任何地方以及任何時間實現P2P計算的一整套簡單、小巧和靈活的機制。JXTA首先將歸納目前P2P的功能特別,而後建立核心的技術來表達目前的P2P計算的局限性。其重點是創建基本的機制,而具體的策略選擇權則交給應用的開發者。JXTA將充分利用XML、Java等開放技術,使得UNIX操作系統更強大和靈活,比如利用管道(Pipes)傳輸Shell命令實現復雜的計算任務。JXTA支持P2P應用的基本功能來建立一個P2P系統,還將努力證實這些可以成為建立更高層功能的基礎構造模塊。JXTA架構可以分為三個層面:JXTA核心層、JXTA業務層和JXTA應用層。
DWR【Java開源AJax框架】
DWR(DirectWebRemoting)是一個WEB遠程調用框架.利用這個框架可以讓AJax開發變得很簡單.利用DWR可以在客戶端利用 JavaScript直接調用服務端的Java方法並返回值給Javascript就好像直接本地客戶端調用一樣(DWR根據Java類來動態生成 JavaScrip代碼).它的最新版本DWR0.6添加許多特性如:支持DomTrees的自動配置,支持Spring(JavaScript遠程調用 springbean),更好浏覽器支持,還支持一個可選的commons-logging日記操作。
ZK【Java開源 AJax框架】
ZK是一個AJaxJavaWeb框架,利用少量代碼就能夠開發出擁有RichUI的Web應用。ZK提供基於 XUL的標記語言和事件驅動的組件,可以讓你像開發桌面應用程序一樣簡單。支持EL表達式和腳本語言包括:JavaScript、Ruby和Groovy 等。支持Annotation及數據綁定。集成GoogleMaps、FCKeditor、DOJO以及Timeline。