最近研究了J2EE中的MOM4J、OpenJMS、Mocki、HSQLD……發(fā)現(xiàn)這些就是J2EE的實(shí)現(xiàn)啊!原來(lái)軟件竟會(huì)如此復(fù)雜….規(guī)范和 實(shí)現(xiàn)又是如何成為一體的呢?通過(guò)上面的研究發(fā)現(xiàn):原來(lái)J2EE后面竟然有太多太多理念、太多太多的相似!這些相似就是其背后的理念??設(shè)計(jì)模式!其實(shí)模式就是一 種思維方式、就是一種理念……模式是要運(yùn)用到程序中的,只有從真正的項(xiàng)目中才能領(lǐng)會(huì)模式的含義……
學(xué)得越多,發(fā)現(xiàn)懂得越少!在學(xué)習(xí)過(guò)程中發(fā)現(xiàn)一些很有用,很值得學(xué)習(xí)的開源項(xiàng)目,今天在此推薦給大家。

一、JavaServlet和JSP方向

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

1. Jakarta Tomcat

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

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

下面推薦兩個(gè)小一點(diǎn)的吧!

2. Jetty

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

3. Jigsaw

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

4. Jo!

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

二、JDBC方向

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

1. Hypersonic SQL

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

2. Mckoi DataBase

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

3. Apache Derby

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

不過(guò)在沒(méi)有足夠的能力前,不要試圖讀懂它!注釋和源代碼15000頁(yè)左右,我一年的閱讀量!能讀下來(lái)并且能真正領(lǐng)會(huì)它,絕對(duì)高手!你能讀完 Derby的源代碼只有兩種可能:1.你成為頂尖的高手??至少是數(shù)據(jù)庫(kù)這部分; 2.你瘋了。選擇吧!!!!作為我自己我先選擇Hypersonic SQL這樣的數(shù)據(jù)庫(kù)先研究,能過(guò)這一關(guān),再繼續(xù)