
这篇文章写在我研究J2SE、J2EE近三年后。前3年我研究了J2SE的Swing、Applet、Net、RMI、Collections、 IO、JNI……研究了J2EE的JDBC、Sevlet、JSP、JNDI…..不久我看到很多貌似太浮浅了:首先,我看到自己明白的只是是java提 供的长期的API,根本不能很好地使用它; 其次,我根本就没有学到任何有助于写程序的常识,此时我也只不过能写个几页的小程序。出于这个幼稚的看法我研究了JDK中Collections、 Logger、IO…..的源代码,发现这个世界真的很神奇,竟然有那么的大神――利用java语言最最基本的词汇,创造了很多优秀的 Framework。
从此一发不可收拾,我再次研究了J2EE的个别,又看到这是一个我根本不能理解的方向(曾经有半年停滞不前),为什么唯有接口没有实现啊!后来鉴于 一直使用Tomcat、Derby等软件时常看到:哦!原来J2EE仅仅是一个标准,只是一个架构。真正的谋求是不同提供商提供的。
接着我研究了MOM4J、OpenJMS、Mocki、HSQLD……发现很多就是J2EE的实现啊!原来软件竟会这么复杂,竟会多么做….规范和 实现又是怎样变成一体的呢?通过下面的研究发现:原来J2EE后面居然有太多太多理念、太多太多的相同!这些相近就是其背后的观念――设计模式!(很幸 运,在我学java的之后,我大概学java的一个方向都会读一些关于设计理念的书!很幸运,到能感受一点的之后能真正了解这是为什么!)其实机制就是一 种认知方法、就是一种理念……模式是要利用到程序中的,只有从真正的项目中能够把握理念的意义……
学得越多,发现懂得越少!在学习过程中看到一些很有用,很值得学习的开源项目,今天在此推荐给你们。
一、JavaServlet和JSP方向
很都是从Servlet和JSP步入J2EE的。它就是J2EE的体现层,用于向用户呈现服务器上的内容。J2EE很重要的方面。不罗嗦了!大 家都明白的!下面就起初推荐吧!
1. Jakarta Tomcat
Apache基金会提供的免费的开源的Serlvet容器,它是的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司(都 是IT界的大佬哦)及个人一同研发而成,全世界绝大部分Servlet和Jsp的容器都是使用它哦!由于Sun的参加和支持,最新的Servlet和 Jsp规范总能在Tomcat中受到表现。
不过它是一个非常非常全的Serlvet容器,全部源码可能有4000页,对于初学者或者通常的老手可能还是非常大了!在你有能力时推荐研究!下载 地址:
下面推荐两个小一点的吧!
2. Jetty
Jetty是一个开放源码的HTTP服务器和Java serverlet容器。源代码只有1000页左右,很值得研究。有兴趣可以去下载看看。我以前翻了 一下,只是如今没有时间。(都化在博客上了,等博客基本定型,且内容完整了,再干我热衷的事件吧!)
3. Jigsaw
Jigsaw是W3C开发的HTTP,基于Java 的服务器,提供了今后 Web 技术演进的愿景。W3C知道吧!(太有实力了,很多标准都是它制订的!有空经常去瞧瞧吧!)下载网址: 代码仅仅1000页左右。
4. Jo!

Jo!是一个纯Java的实现了Servlet API 2.2, JSP 1.1, 和HTTP/1.1的Web服务器。它的特点比如支持servlet tag,支持SSI,高级线程管理,虚拟主机,数据缓存,自动压缩text或HTML文件进行存储,国际化支持,自动再次加载Servlet、Jsp,自 动重新读取web工程文件(WARs),支持WAR热部署和一个Swing控制台。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下载地址 。我极力推荐你们在研究Tomcat之前研究该工具,主要是其比Tomcat小多了,且开发者提供非常全的指南。该方向研究这两个也就可以了!
二、JDBC方向
很都喜欢JDBC,吗!很深奥的东西,一听就可以忽悠人。其实等你真正研究了的推动后看到,接口虽然真的太简洁,太完美了!要想设 计极其优秀的框架还是必须学习的。下面就推荐几个的实现吧!
1. Hypersonic SQL
Hypersonic SQL开源方向非常流行的纯Java开发的关系型。好像不是JDBC兼容的,JDBC的好多高级的特点都没有支持,不过还好支持ANSI- 92 标准 SQL语法。我推荐它主要是它的代码非常少1600页左右,如此小的值得研究,而且他占的空间很小,大约只有160K,拥有迅速的引擎。推荐 你的第一个开源。下载地址:。
2. Mckoi DataBase
McKoiDB 和Hypersonic SQL差不多,它是GPL 的license的纯Java开发的。他的 JDBC Driver 是使用 JDBC version 3 的 Specifaction。 他只是遵循 SQL-92 的标准,也尽量支持新的 SQL 特色, 并且支持 Transaction 的功能。两个可以选一个吧!下载地址:。
3. Apache Derby
学Java的我建议使用Apache Derby ,研究想变成一个的大神我建议你先研究Apache Derby。Apache Derby是一个高质量的、纯 Java开发的嵌入式关系引擎,IBM 将其捐献给Apache开放源码社区,同时IBM的产品CloudSpace是它对应的产品。Derby是基于文件系统,具有高度的可移植性,并且是轻量 级的,这促使它比较方便发布。主要是没有商业客户的很高的界面,没有其很多的功能。不过针对我们使用、研究还是非常有用的。对于中小型的企业 说老实话你也不要用哪个Oracle、SqlServer了,用Derby就可以了,何况是开源的呢!只要能发挥其长处也不容易啊!下载地 址:。
不过在没有足够的能力前,不要试图看懂它!注释和源代码15000页左右,我一年的阅读量!能读出来然后能真正把握它,绝对高手!你能读完 Derby的源代码只有两种可能:1.你作为顶级的大神――至少是这部分; 2.你疯了。选择吧!!!!作为我自己我先选择Hypersonic SQL这样的先研究,能过这一关,再再次研究Derby!不就是一年的阅读量吗!我可以化3年去研究怎样做一个其实还是很值得的!有的人搞 IT一辈子自己哪些都没有做,也根本没有研究对方的东西!
作为一个IT落后于别国若干年的、从事IT的下游产业“外包”的国家的IT从业人员,我觉得还是先研究对方的优秀的东西比较好!可以先研究对方的, 然后消化,学为己用!一心闭门造车实在遗憾!
三、JMS方向
JMS可能对你们来说是一个比较陌生的方向!其实JMS是一个比较容易理解,容易上手的方向。主要是Java消息服务,API也是非常简单的。不过 在企业应用中比较广泛。下面就介绍几个吧!
1. MOM4J
MOM4J是一个完全推动JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02。它提供了自己的消息处理存储使它独立于关系数据与语 言,它的客户端可以用任何语言开发。它可以算是一个小麻雀,很全实现也非常简洁!它包括一个命名服务器,一个消息服务器,同时提供自己的大幅层。设计也相 当的巧妙,完全借助操作系统中文件系统设计的理念。代码也很少,250页左右,最近我在写该实现的源代码阅读方面的书,希望今年年中能与你们见面!下载地 址:。

2. OpenJMS
OpenJMS是一个开源的Java Message Service API 1.0.2 规范的推动,它包括有以上特点:
1. 它既支持点到点(point-to-point)(PTP)模型和公布/订阅(Pub/Sub)模型。
2. 支持同步与异步消息发送 。
3. JDBC持久性管理使用表来存储消息 。
4. 可视化管理界面。
5. Applet支持。
6. 能够与Jakarta Tomcat这样的Servlet容器结合。
7. 支持RMI, TCP, HTTP 与SSL协议。
8. 客户端验证 。
9. 提供靠谱消息存储、事务和消息过滤。
很好的JMS方向的开源项目!我至今也在研究它的源代码!学习它可以顺便研究JNDI的推动、以及网络通信的细节。这是我JMS方向研究的第二个开 源项目。代码量1600页左右吧!下载地址:
3. ActiveMQ
ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并推动了JMS 1.1。它就能与Geronimo,轻量级容器和任Java应用程序无缝的给合。主要是Apache的可以任意的使用和发布哦!个人非常喜欢Apache 的源代码!下载地址:
4. JORAM

JORAM一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。ObjectWeb的产品也有相当值得研究的!下面我都会给 大家另外一个ObjectWeb的产品。下载地址:
我个人推荐:OpenJMS和ActiveMQ!
四、EJB方向
EJB一个比较“高级”的方向。Sun公司曾经以此在分布式计算领域重拳出击。不过自从发生了Spring、Hibernation……后仍然没落 了!这个方向单独开源的也非常少,主要EJB是和JNDI、JDBC、JMS、JTS、JTA结合在一起的是以极少有单独的。下面推荐两个不过貌似也要下 载其它类库。
1. EasyBeans
ObjectWeb的一个新的项目,一个轻量级的EJB3容器,虽然还没有正式公布,但是终于可以从他们的subversion仓库中检出代码。代 码量非常小600页左右,熟读它可以对网络编程、架构、RMI、容器的状况设计非常知道了!即学会EJB又能学习其他设计方式何乐而不为哦!下载地 址:
2. OpenEJB
OpenEJB是一个预生成的、自包含的、可移植的EJB容器系统,可以被插入到任意的服务器环境,包括应用程序服务器,Web服务器,J2EE平 台, CORBA ORB和等等。OpenEJB 被用于 Apple的WebObjects。听上去很高,我至今没有研究过。不知道我就不推荐了。下载地址:
五、J2EE容器
上面谈了这么多,都是J2EE的各个方向的。其实J2EE是一个规范,J2EE的产品通常规定提供商必须提供他们的谋求。这些推动本来就是 J2EE容器。市场上流行的J2EE容器很多,在开源领域流行的唯有很少,很少。其中最著名的是JBoss。
1. JBoss
在J2EE应用服务器领域,Jboss是演进最为迅速的应用服务器。由于Jboss遵循商业友好的LGPL授权分发,并且由开源社区开发,这促使 Jboss广为流行。另外,Jboss应用服务器还具备许多优秀的特点。
其一,它将具备革命性的JMX微内核服务成为其总线构架;
其二,它本来就是面向服务的架构(Service-Oriented Architecture,SOA);
其三,它还具备统一的类装载器,从而无法推动应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的切实反馈告诉我 们,Jboss应用服务器是健壮的、高质量的,而且还具备良好的性能。为满足企业级市场逐渐下降的意愿,Jboss公司从2003年开始就推出了 24*7、级产品支持服务。同时,为拓宽Jboss的企业级市场,Jboss公司还签署了许多渠道合作伙伴。比如,Jboss公司同HP、 Novell、Computer Associates、Unisys等都是合作伙伴。

在2004年6月,Jboss公司宣布,Jboss应用服务器通过了Sun公司的J2EE认证。这是Jboss应用服务器发展史上目前为止最重要的 里程碑。与此同时,Jboss一直在紧跟最新的J2EE规范,而且在这种科技领域掀起J2EE规范的研发。因此jsp开源项目,无论在商业领域,还是在开源社 区,Jboss成为了第一个通过J2EE 1.4认证的主流应用服务器。现在,Jboss应用服务器已经真正发展成具备企业效率(即,支持关键级任务的应用)的应用服务器。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-129337-1.html
支持你们
自已弄点水果榨汁加点酒精加点水加点糖就好了