java開源工具簡介(1)
來源: http://baike.baidu.com/view/629119.htm
開源不是開放編譯器的 源代碼.
通俗點說, 就是你寫了一個 軟體, 然後把這個 軟體的源代碼釋出到網上, 讓大家都可以學習,改進. 就是開源!
專業點說, 就是要符合一定的規範, 比如GPL等. 在codeproject等你可以找到很多這樣的開源軟體.
--------------------------------------------------------------------------------
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排程】 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&CRM
【Java開源 ERP與CRM系統】 Compiere ERP&CRM為全球範圍内的中小型企業提供綜合型解決方案,覆寫從客戶管理、供應鍊到财務管理的全部領域,支援多組織、多币種、多會計模式、多 成本計算、多語種、多稅制等國際化特性。易于安裝、易于實施、易于使用。隻需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收 款、産品與定價、資産管理、客戶關系、供應商關系、員工關系、經營業績分析等強大功能了。
Roller Weblogger
【Java開源 Blog部落格】 這個weblogging 設計得比較精巧,源代碼是很好的學習資料。它支援weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁面模 闆,RSS syndication,blogroll管理和提供一個XML-RPC 接口。
Eclipse
【Java開源 開發工具】 Eclipse平台是IBM向開發源碼社群捐贈的開發架構,它之是以出名并不是因為IBM宣稱投入開發的資金總數 —4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴充的體系結構。
XPlanner
【Java開源 項目管理】 XPlanner 一個基于Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、user stories等,XPlanner都提供了相對應的的管理工具,XPlanner支援XP開發流程,并解決利用XP思想來開發項目所碰到的問題。 XPlanner特點包括:簡單的模型規劃,虛拟筆記卡(Virtual note cards),iterations、user stories與工作記錄的追蹤,未完成stories将自動疊代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP界面支援。
Liferay
【Java開源 Portal門戶】 代表了完整的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開源 Portal門戶】 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開源 J2EE伺服器】 JOnAS是一個開放源代碼的J2EE實作,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確定符合 Servlet 2.3和JSP 1.2規範。JOnAS伺服器依賴或實作以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
EasyJWeb
【Java開源 Web架構】 EasyJWeb是基于java技術,應用于WEB應用程式快速開發的MVC架構,架構設計構思來源于國内衆多項目實踐,架構充分借簽了目前主要流行的開 源Web架構(Struts、JSF、Tapestry 、Webwork),吸取了其優點及精華,利用Velocity作為模闆頁面引擎,是一個實作了頁面及代碼完全分離的MVC開發架構。是一個能實作中小型 Web應用系統快速開發的簡易Web架構。
通過EasyJWeb Tools提供的配套開發工具,可以實作基于EasyJWeb架構的Web應用快速開發,包括常用應用軟體的代碼自生成、資料庫添删改查(CRUD)代碼生成、自動頁面模版生成、配置檔案管理等。
架構特點:
1、零配檔案置支援。以前我們每接觸一個架構,開始總都要被他的配置檔案折騰一番。EasyJWeb實作零配置支援,可以不寫一句配置檔案就在架構基礎上建構你的運用。(适合小型網站系統)。
2、簡易的模闆頁面設計支援:放棄使用jsp,使用簡單Velocity腳本語言作為頁面模闆。
3、頁面程式完全分離:實作顯示頁面與程式邏輯的完全分離,克服了傳統jsp頁面難于維護的問題。
4、基于頁面元件的架構。靈活的頁面元件配置,可以直接通過配置檔案設定字段級的事件元件。
5、快速開發支援:通過EasyJWeb Tools,可以自動生成應用軟體模闆代碼,定制并管理自己的J2EE代碼模闆,代碼生成模闆支援最流行的實用Java開發架構(如hibernate、Spring等)實作快速開發。
Tapestry
【Java開源 Web架構】 Tapestry是一個開源的基于servlet的應用程式架構,它使用元件對象模型來建立動态的,互動的web應用。一個元件就是任意一個帶有 jwcid屬性的html标記。其中jwc的意思是Java Web Component。Tapestry使得java代碼與html完全分離,利用這個架構開發大型應用變得輕而易舉。并且開發的應用很容易維護和更新。 Tapestry支援本地化,其錯誤報告也很詳細。Tapestry主要利用javabean和xml技術進行開發。【Spindle:Tapestry 輔助開發Eclipse插件】.
Turbine
【Java開源 Web架構】 Turbine是基于Servlet的架構包,也是開放源代碼Jakarta項目。目前還沒有關于Turbine的大量文檔。它類似于Struts,但是 有一些主要差別。突出的一點就是它并沒有與JSP耦合。Turbine的特點是它提供了大量可重用的元件。此架構包中包含了大量元件,但是這些元件是離散 的。它似乎應該給出更多的元件庫,但是由于它缺少文檔,是以很難掌握完整的體系結構。
FreeMarker
【Java開源 模闆引擎】 FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模闆中密封HTML完成的。模闆用servlet提供的資料動态地生成 HTML。模闆語言是強大的直覺的,編譯器 速度快,輸出接近靜态HTML頁面的 速度。 【FreeMarker Eclipse Plugin與FreeMarker IDE: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