最近研究了J2EE中的MOM4J、OpenJMS、Mocki、HSQLD……發(fā)現(xiàn)這些就是J2EE的實現(xiàn)啊!原來軟件竟會如此復(fù)雜….規(guī)范和 實現(xiàn)又是如何成為一體的呢?通過上面的研究發(fā)現(xiàn):原來J2EE后面竟然有太多太多理念、太多太多的相似!這些相似就是其背后的理念??設(shè)計模式!其實模式就是一 種思維方式、就是一種理念……模式是要運用到程序中的,只有從真正的項目中才能領(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ā)展的藍圖。W3C知道吧!(太有名氣了,很多標準都是它制訂的!有空經(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,高級線程管理,虛擬主機,數(shù)據(jù)緩存,自動壓縮text或HTML文件進行傳輸,國際化支持,自動重新加載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 標準 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 的標準,也盡量支持新的 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® 將其捐獻給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ù)