西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)java → J2EE學(xué)習(xí)中一些值得研究的開源項目

J2EE學(xué)習(xí)中一些值得研究的開源項目

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2010/11/15 14:20:48字體大。A-A+

作者:佚名點擊:49次評論:0次標(biāo)簽: java

  • 類型:行業(yè)軟件大。7.3M語言:中文 評分:10.0
  • 標(biāo)簽:
立即下載
這篇文章寫在我研究J2SE、J2EE近三年后。前3年我研究了J2SE的Swing、Applet、Net、RMI、Collections、 IO、JNI……研究了J2EE的JDBC、Sevlet、JSP、JNDI…..不久我發(fā)現(xiàn)這些好像太浮淺了:首先,我發(fā)現(xiàn)自己知道的僅僅是java提 供的大量的API,根本不能很好地使用它; 其次,我根本就沒有學(xué)到任何有助于寫程序的知識,此時我也只不過能寫個幾頁的小程序。出于這個幼稚的想法我研究了JDK中Collections、 Logger、IO…..的源代碼,發(fā)現(xiàn)這個世界真的很神奇,竟然有如此的高手――利用java語言最最基本的語法,創(chuàng)造了這些優(yōu)秀的 Framework。

從此一發(fā)不可收拾,我繼續(xù)研究了J2EE的部分,又發(fā)現(xiàn)這是一個我根本不能理解的方向(曾經(jīng)有半年停滯不前),為什么只有接口沒有實現(xiàn)啊!后來由于 一直使用Tomcat、Derby等軟件突然發(fā)現(xiàn):哦!原來J2EE僅僅是一個標(biāo)準(zhǔn),只是一個架構(gòu)。真正的實現(xiàn)是不同提供商提供的。

接著我研究了MOM4J、OpenJMS、Mocki、HSQLD……發(fā)現(xiàn)這些就是J2EE的實現(xiàn)啊!原來軟件竟會如此復(fù)雜,竟會如此做….規(guī)范和 實現(xiàn)又是如何成為一體的呢?通過上面的研究發(fā)現(xiàn):原來J2EE后面竟然有太多太多理念、太多太多的相似!這些相似就是其背后的理念――設(shè)計模式!(很幸 運,在我學(xué)java的時候,我一般學(xué)java的一個方向就會讀一些關(guān)于設(shè)計模式的書!很幸運,到能領(lǐng)略一點的時候能真正知道這是為什么!)其實模式就是一 種思維方式、就是一種理念……模式是要運用到程序中的,只有從真正的項目中才能領(lǐng)會模式的含義……
學(xué)得越多,發(fā)現(xiàn)懂得越少!在學(xué)習(xí)過程中發(fā)現(xiàn)一些很有用,很值得學(xué)習(xí)的開源項目,今天在此推薦給大家。

一、JavaServlet和JSP方向

很多人都是從Servlet和JSP步入J2EE的。它就是J2EE的表現(xiàn)層,用于向客戶呈現(xiàn)服務(wù)器上的內(nèi)容。J2EE很重要的方面。不羅嗦了!大 家都知道的!下面就開始推薦吧!

1. Jakarta Tomcat

Apache基金會提供的免費的開源的Serlvet容器,它是的Jakarta項目中的一個核心項目,由Apache、Sun和其它一些公司(都 是IT界的大鱷哦)及個人共同開發(fā)而成,全世界絕大部分Servlet和Jsp的容器都是使用它哦!由于Sun的參與和支持,最新的Servlet和 Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。

不過它是一個非常非常全的Serlvet容器,全部源碼可能有4000頁,對于初學(xué)者或者一般的老手可能還是比較大了!在你有能力時推薦研究!下載 地址:http://jakarta.apache.org/tomcat/index.html

下面推薦兩個小一點的吧!

2. Jetty

Jetty是一個開放源碼的HTTP服務(wù)器和Java serverlet容器。源代碼只有1000頁左右,很值得研究。有興趣可以去http://jetty.mortbay.com/下載看看。我曾經(jīng)翻了 一下,只是目前沒有時間。(都化在博客上了,等博客基本定型,且內(nèi)容完整了,再干我熱衷的事件吧!)

3. Jigsaw

Jigsaw是W3C開發(fā)的HTTP,基于Java 的服務(wù)器,提供了未來 Web 技術(shù)發(fā)展的藍(lán)圖。W3C知道吧!(太有名氣了,很多標(biāo)準(zhǔn)都是它制訂的!有空經(jīng)常去看看吧!)下載網(wǎng)址:http://www.w3.org/Jigsaw 代碼僅僅1000頁左右。

4. Jo!

Jo!是一個純Java的實現(xiàn)了Servlet API 2.2, JSP 1.1, 和HTTP/1.1的Web服務(wù)器。它的特性包括支持servlet tag,支持SSI,高級線程管理,虛擬主機(jī),數(shù)據(jù)緩存,自動壓縮text或HTML文件進(jìn)行傳輸,國際化支持,自動重新加載Servlet、Jsp,自 動重新加載web工程文件(WARs),支持WAR熱部署和一個Swing控制臺。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下載地址http://www.tagtraum.com/ 。我極力推薦大家在研究Tomcat之前研究該軟件,主要是其比Tomcat小多了,且開發(fā)者提供比較全的手冊。該方向研究這兩個也就可以了!

二、JDBC方向

很多人都喜歡JDBC,數(shù)據(jù)庫嗎!很深奧的東西,一聽就可以糊弄人。其實等你真正研究了數(shù)據(jù)庫的實現(xiàn)后發(fā)現(xiàn),接口其實真的太簡單,太完美了!要想設(shè) 計如此優(yōu)秀的框架還是需要學(xué)習(xí)的。下面就推薦幾個數(shù)據(jù)庫的實現(xiàn)吧!

1. Hypersonic SQL

Hypersonic SQL開源數(shù)據(jù)庫方向比較流行的純Java開發(fā)的關(guān)系型數(shù)據(jù)庫。好像不是JDBC兼容的,JDBC的很多高級的特性都沒有支持,不過幸好支持ANSI- 92 標(biāo)準(zhǔn) SQL語法。我推薦它主要是它的代碼比較少1600頁左右,如此小的數(shù)據(jù)庫值得研究,而且他占的空間很小,大約只有160K,擁有快速的數(shù)據(jù)庫引擎。推薦 你的第一個開源數(shù)據(jù)庫。下載地址:http://hsqldb.sourceforge.net/。

2. Mckoi DataBase

McKoiDB 和Hypersonic SQL差不多,它是GPL 的license的純Java開發(fā)的數(shù)據(jù)庫。他的 JDBC Driver 是使用 JDBC version 3 的 Specifaction。 他也是遵循 SQL-92 的標(biāo)準(zhǔn),也盡量支持新的 SQL 特色, 并且支持 Transaction 的功能。兩個可以選一個吧!下載地址:http://mckoi.com/database/。

3. Apache Derby

學(xué)Java的數(shù)據(jù)庫我建議使用Apache Derby ,研究數(shù)據(jù)庫想成為一個數(shù)據(jù)庫的高手我建議你先研究Apache Derby。Apache Derby是一個高質(zhì)量的、純 Java開發(fā)的嵌入式關(guān)系數(shù)據(jù)庫引擎,IBM® 將其捐獻(xiàn)給Apache開放源碼社區(qū),同時IBM的產(chǎn)品CloudSpace是它對應(yīng)的產(chǎn)品。Derby是基于文件系統(tǒng),具有高度的可移植性,并且是輕量 級的,這使得它非常便于發(fā)布。主要是沒有商業(yè)用戶的很好的界面,沒有其太多的功能。不過對于我們使用數(shù)據(jù)庫、研究數(shù)據(jù)庫還是極其有用的。對于中小型的企業(yè) 說老實話你也不要用什么Oracle、SqlServer了,用Derby就可以了,何況是開源的呢!只要能發(fā)揮其長處也不容易啊!下載地 址:http://incubator.apache.org/derby。

不過在沒有足夠的能力前,不要試圖讀懂它!注釋和源代碼15000頁左右,我一年的閱讀量!能讀下來并且能真正領(lǐng)會它,絕對高手!你能讀完 Derby的源代碼只有兩種可能:1.你成為頂尖的高手――至少是數(shù)據(jù)庫這部分; 2.你瘋了。選擇吧!!!!作為我自己我先選擇Hypersonic SQL這樣的數(shù)據(jù)庫先研究,能過這一關(guān),再繼續(xù)研究Derby!不就是一年的閱讀量嗎!我可以化3年去研究如何做一個數(shù)據(jù)庫其實還是很值得的!有的人搞 IT一輩子自己什么都沒有做,也根本沒有研究別人的東西!

作為一個IT落后于別國若干年的、從事IT的下游產(chǎn)業(yè)“外包”的國家的IT從業(yè)人員,我認(rèn)為還是先研究別人的優(yōu)秀的東西比較好!可以先研究別人的, 然后消化,學(xué)為己用!一心閉門造車實在遺憾!

三、JMS方向

JMS可能對大家來說是一個比較陌生的方向!其實JMS是一個比較容易理解,容易上手的方向。主要是Java消息服務(wù),API也是相當(dāng)簡單的。不過 在企業(yè)應(yīng)用中相當(dāng)廣泛。下面就介紹幾個吧!

1. MOM4J

MOM4J是一個完全實現(xiàn)JMS1.1規(guī)范的消息中間件并且向下兼容JMS1.0與1.02。它提供了自己的消息處理存儲使它獨立于關(guān)系數(shù)據(jù)與語 言,它的客戶端可以用任何語言開發(fā)。它可以算是一個小麻雀,很全實現(xiàn)也比較簡單!它包含一個命名服務(wù)器,一個消息服務(wù)器,同時提供自己的持續(xù)層。設(shè)計也相 當(dāng)?shù)那擅,完全利用操作系統(tǒng)中文件系統(tǒng)設(shè)計的觀念。代碼也很少,250頁左右,最近我在寫該實現(xiàn)的源代碼閱讀方面的書,希望明年年中能與大家見面!下載地 址:http://mom4j.sourceforge.net/index.html。

2. OpenJMS

OpenJMS是一個開源的Java Message Service API 1.0.2 規(guī)范的實現(xiàn),它包含有以下特性:
1. 它既支持點到點(point-to-point)(PTP)模型和發(fā)布/訂閱(Pub/Sub)模型。

2. 支持同步與異步消息發(fā)送 。

3. JDBC持久性管理使用數(shù)據(jù)庫表來存儲消息 。

4. 可視化管理界面。

5. Applet支持。

6. 能夠與Jakarta Tomcat這樣的Servlet容器結(jié)合。

7. 支持RMI, TCP, HTTP 與SSL協(xié)議。

8. 客戶端驗證 。

9. 提供可靠消息傳輸、事務(wù)和消息過濾。

很好的JMS方向的開源項目!我目前也在研究它的源代碼!學(xué)習(xí)它可以順便研究JNDI的實現(xiàn)、以及網(wǎng)絡(luò)通信的細(xì)節(jié)。這是我JMS方向研究的第二個開 源項目。代碼量1600頁左右吧!下載地址:http://openjms.sourceforge.net/index.html

3. ActiveMQ

ActiveMQ是一個開放源碼基于Apache 2.0 licenced 發(fā)布并實現(xiàn)了JMS 1.1。它能夠與Geronimo,輕量級容器和任Java應(yīng)用程序無縫的給合。主要是Apache的可以任意的使用和發(fā)布哦!個人比較喜歡Apache 的源代碼!下載地址:http://activemq.codehaus.org/

4. JORAM

JORAM一個類似于openJMS分布在ObjectWeb之下的JMS消息中間件。ObjectWeb的產(chǎn)品也是非常值得研究的!下面我還會給 大家另外一個ObjectWeb的產(chǎn)品。下載地址:http://joram.objectweb.org/

我個人推薦:OpenJMS和ActiveMQ!

四、EJB方向

EJB一個比較“高級”的方向。Sun公司曾經(jīng)以此在分布式計算領(lǐng)域重拳出擊。不過自從出現(xiàn)了Spring、Hibernation……后似乎沒落 了!這個方向單獨開源的也比較少,主要EJB是和JNDI、JDBC、JMS、JTS、JTA結(jié)合在一起的是以很少有單獨的。下面推薦兩個不過好像也要下 載其它類庫。

1. EasyBeans

ObjectWeb的一個新的項目,一個輕量級的EJB3容器,雖然還沒有正式發(fā)布,但是已經(jīng)可以從它們的subversion倉庫中檢出代碼。代 碼量比較小600頁左右,熟讀它可以對網(wǎng)絡(luò)編程、架構(gòu)、RMI、容器的狀態(tài)設(shè)計比較了解了!即學(xué)會EJB又能學(xué)習(xí)其它設(shè)計方法何樂而不為哦!下載地 址:http://easybeans.objectweb.org/
2. OpenEJB

OpenEJB是一個預(yù)生成的、自包含的、可移植的EJB容器系統(tǒng),可以被插入到任意的服務(wù)器環(huán)境,包括應(yīng)用程序服務(wù)器,Web服務(wù)器,J2EE平 臺, CORBA ORB和數(shù)據(jù)庫等等。OpenEJB 被用于 Apple的WebObjects。聽起來很好,我目前沒有研究過。不知道我就不推薦了。下載地址:http://www.openejb.org/

五、J2EE容器

上面談了這么多,都是J2EE的各個方向的。其實J2EE是一個規(guī)范,J2EE的產(chǎn)品一般要求專業(yè)提供商必須提供它們的實現(xiàn)。這些實現(xiàn)本身就是 J2EE容器。市場上流行的J2EE容器很多,在開源領(lǐng)域流行的只有很少,很少。其中最著名的是JBoss。

1. JBoss

在J2EE應(yīng)用服務(wù)器領(lǐng)域,Jboss是發(fā)展最為迅速的應(yīng)用服務(wù)器。由于Jboss遵循商業(yè)友好的LGPL授權(quán)分發(fā),并且由開源社區(qū)開發(fā),這使得 Jboss廣為流行。另外,Jboss應(yīng)用服務(wù)器還具有許多優(yōu)秀的特質(zhì)。

其一,它將具有革命性的JMX微內(nèi)核服務(wù)作為其總線結(jié)構(gòu);

其二,它本身就是面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA);

其三,它還具有統(tǒng)一的類裝載器,從而能夠?qū)崿F(xiàn)應(yīng)用的熱部署和熱卸載能力。因此,它是高度模塊化的和松耦合的。Jboss用戶的積極反饋告訴我 們,Jboss應(yīng)用服務(wù)器是健壯的、高質(zhì)量的,而且還具有良好的性能。為滿足企業(yè)級市場日益增長的需求,Jboss公司從2003年開始就推出了 24*7、專業(yè)級產(chǎn)品支持服務(wù)。同時,為拓展Jboss的企業(yè)級市場,Jboss公司還簽訂了許多渠道合作伙伴。比如,Jboss公司同HP、 Novell、Computer Associates、Unisys等都是合作伙伴。

在2004年6月,Jboss公司宣布,Jboss應(yīng)用服務(wù)器通過了Sun公司的J2EE認(rèn)證。這是Jboss應(yīng)用服務(wù)器發(fā)展史上至今為止最重要的 里程碑。與此同時,Jboss一直在緊跟最新的J2EE規(guī)范,而且在某些技術(shù)領(lǐng)域引領(lǐng)J2EE規(guī)范的開發(fā)。因此,無論在商業(yè)領(lǐng)域,還是在開源社 區(qū),Jboss成為了第一個通過J2EE 1.4認(rèn)證的主流應(yīng)用服務(wù)器,F(xiàn)在,Jboss應(yīng)用服務(wù)器已經(jīng)真正發(fā)展成具有企業(yè)強(qiáng)度(即,支持關(guān)鍵級任務(wù)的應(yīng)用)的應(yīng)用服務(wù)器。

Jboss 4.0作為J2EE認(rèn)證的重要成果之一,已經(jīng)于2004年9月順利發(fā)布了。同時,Jboss 4.0還提供了Jboss AOP(Aspect-Oriented Programming,面向方面編程)組件。近來,AOP吸引了大量開發(fā)者的關(guān)注。它提供的新的編程模式使得用戶能夠?qū)⒎矫?比如,事務(wù))從底層業(yè)務(wù)邏 輯中分離出來,從而能夠縮短軟件開發(fā)周期。用戶能夠單獨使用Jboss AOP,即能夠在Jboss應(yīng)用服務(wù)器外部使用它;蛘,用戶也可以在應(yīng)用服務(wù)器環(huán)境中使用它。Jboss AOP 1.0已經(jīng)在2004年10月發(fā)布了。 很有名吧!可以下載一個用一下,下載地址:http://www.jboss.org/

關(guān)于JBoss的使用資料也非常多,甚至比商業(yè)軟件的還多。有機(jī)會研究吧!

2. JOnAS

JOnAS是一個開放源代碼的J2EE實現(xiàn),在ObjectWeb協(xié)會中開發(fā)。整合了Tomcat或Jetty成為它的Web容器,以確保符合 Servlet 2.3和JSP 1.2規(guī)范。JOnAS服務(wù)器依賴或?qū)崿F(xiàn)以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。下載地址:http://jonas.objectweb.org/
3.Apache Geronimo

Apache Geronimo 是 Apache 軟件基金會的開放源碼J2EE服務(wù)器,它集成了眾多先進(jìn)技術(shù)和設(shè)計理念。 這些技術(shù)和理念大多源自獨立的項目,配置和部署模型也各不相同。 Geronimo能將這些項目和方法的配置及部署完全整合到一個統(tǒng)一、易用的模型中。作為符合J2EE標(biāo)準(zhǔn)的服務(wù)器,Geronimo提供了豐富的功能集 和無責(zé)任 Apache 許可,具備“立即部署”式J2EE 1.4容器的各種優(yōu)點,其中包括:

1. 符合J2EE1.4標(biāo)準(zhǔn)的服務(wù)器 。

2. 預(yù)集成的開放源碼項目 。

3. 統(tǒng)一的集成模型 。

4. 可伸縮性、可管理性和配置管理功能。

我一直比較推薦Apache的產(chǎn)品。主要是可以任意自由地使用。下載地址:http://incubator.apache.org /projects/geronimo/

六、其它

講了這么多大家可能很厭煩了!是不是很多很多啊!其實不然,我們不會的太多太多了!不會的太多太多了。不管你是不是J2EE高手,還是J2SE高 手,有些東西你要絕對很精明的。例如:1.Java的Collections Framework就是java的數(shù)據(jù)結(jié)構(gòu)了,不僅要吃透它,還要能按照需要擴(kuò)展它,利用其思想創(chuàng)建一個自己的數(shù)據(jù)結(jié)構(gòu)。2.網(wǎng)絡(luò)編程肯定要會吧,現(xiàn)在以 及以后很多程序都是不在同一臺機(jī)器上的,不會網(wǎng)絡(luò)怎么行哦!3.IO肯定要會的吧!你的程序難道不用輸入輸出數(shù)據(jù)啊!整個IO包加NIO也有600多頁的 源代碼哦!4.JDBC你要會吧!數(shù)據(jù)庫都不會,在你的企業(yè)應(yīng)用中你的數(shù)據(jù)又保存到哪里啊!文件中――太落后了吧!典型的沒有學(xué)過J2EE。盡管數(shù)據(jù)庫背 后也是采用文件保存的。5.Serverlet、JSp你要是做網(wǎng)頁做網(wǎng)站,肯定要做到。問你一個簡單的問題,網(wǎng)頁中如何實現(xiàn)分頁啊!有具體方法的就在本 文章后發(fā)言吧!6. Ant要會吧!java語言中發(fā)布的工具,類似與c中的make工具。7.JUnit用過吧!單元測試軟件。你不要啊!你的軟件就沒有bug!你牛!(建 議大家研究研究其源代碼,很有用的框架,包含大量的設(shè)計模式,源代碼不到100頁!看了只能感嘆――高手就是高手)細(xì)心的朋友可以看到在你使用的很多 IDE工具中都有JUnit哦!就是它。

一切的一切才剛剛開始!有興趣,有需要你可以研究數(shù)據(jù)庫連接池的框架,如:C3P0、Jakarta DBCP、 DBPool….可以研究J2EE框架Spring……. Web框架Struts……持久層框架Hibernate…..甚至開發(fā)工具Eclipse…..Sun領(lǐng)導(dǎo)的點對點通信的JXTA…..報表工具 JFreeChart、JasperReports…..分布式網(wǎng)絡(luò)編程的CORBA、網(wǎng)絡(luò)通信的JGROUPS、XML解析的xerces…..(在不 經(jīng)意間開源已經(jīng)步入你的電腦,不信啊!你JDK的安裝目錄jdk1.6.0 src com sun org apache就是Xerces,一個XML解析的著名的開源 項目)

不管怎么樣我還是建議從基本的做起,學(xué)精J2SE,熟讀它的源碼,準(zhǔn)確了解其設(shè)計理念,然后分頭擊破J2EE――一口吃不成一個胖子!不要貪多貪 廣!腳踏實地就可以了!

    PPT圖表
    (111)PPT圖表
    我們在制作各類的時候,或多或少的都能用到圖表。圖表它可以直觀的展示出各種信息數(shù)據(jù),有了圖表你就可以很好的將數(shù)據(jù)更直觀準(zhǔn)確的表達(dá)出來。小編在這里為大家搜集整理了一些大家可能會用到的圖表模板,歡迎有需要的各位前來下載。...更多>>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)