J2EE开源项目
这篇文章写在我研究J2SEJ2EE近三年后。前3年我研究了 J2SESwingSppIeh NetRMICollections› 10JNI……研究了 J2EE JDBCSevlet. JSPJNDI..… 不久我发现这些好像太浮浅了:首先,我发现自己明白的仅仅是java提 供的大量的API, 根本不能很好地使用它;其次,我根本就没有学到任何有助于写程序的知识,如今我也只只 是能写个几页的小程序。出于这个幼稚的办法我研究了JDKCollections› LoggerJO.…. 的源代码,发现这个世界确实很神奇,居然有如此的高手一一利用java语言最最基本的语 法,制造了这些优秀的Frameworko
从此一发不可收拾,我继续研究了 J2EE的部分,又发现这是一个我根本不能懂得的方 向(曾经有半年停滞不前),为什么只有接口没有实现啊!后来由于一直使用TOmCatDerby等软件突然发现:哦!原先J2EE仅仅是一个标准,只是•个架构。真正的实现是不 一致提供商提供的。
接着我研究了 MoM4JOPenJMSMoCki发现这些就是J2EE的实现 啊!原先软件竟会如此复杂,竟会如此做....规范与实现又是如何成为•体的呢?通过上面的 研究发现:原
J2EE后面居然有太多太多理念、太多太多的相似!这些相似就是其背后的 理念一一设计模式!(很幸运,在我学java的时候,我通常学java的一个方向就会读一些 关于设计模式的书!很幸运,到能领会•点的时候能真正明白这是为什么!)事实上模式就是 一种思维方式、就是一种理念......模式是要运用到程序中的,只有从真正的项目中才能领 会模式的含义……
学得越多,发现懂得越少!在学习过程中发现一些很有用,很值得学习的开源项目,今天在 此推荐给大家。
一、JaVaSerVIet JSP 方向
很多人都是从SerVIetJSP步入J2EE的。它就是J2EE的表现层,用于向客户呈现 服务器上的内容。J2EE很重要的方面。不罗嗦了!大家都明白的!下面就开始推荐吧!
1.Jakarta Tomcat
Apache基金会提供的免费的开源的Serlvet容器,它是的Jakarta项目中的一个核心 项目,由APaCheSUn与其它一些公司(都是IT界的大鳄哦)及个人共同开发而成,全世 界绝大部分ServletJsp的容器都是使用它哦!由于Sun的参与与支持,最新的Servlet Jsp规范总能
Tomcat中得到表达。
下面推荐两个小一点的吧!
2.Jetty
struts框架是干什么的3.Jigsaw
4.Jo!
二、JDBC方向
很多人都喜欢JDBC,数据库吗!很深奥的东西,一听就能够糊弄人。事实上等你真正研 究了数据库的实现后发现,接口事实上确实太简单,太完美了!要想设计如此优秀的框架还 是需要学习的。下面就推荐几个数据库的实现吧!
1.Hypersonic SQL
2.Mckoi DataBase
3.Apache Derby
只是在没有足够的能力前,不要试图读懂它!注释与源代码15000页左右,我一年的阅 读量!能读下来同时能真正领会它,绝对高手!你能读完Derby的源代码只有两种可能:1. 你成为顶尖的高手一一至少是数据库这部分;2,你疯了。选择吧作为我自己我先选择 HyPerSoniCSQL这样的数据库先研究,能过这一关,再继续研究Derby!不就是一年的阅 读量吗!我能够化3年去研究如何做一个数据库事实上还是很值得的!有的人搞IT一辈子自 己什么都没有做,也根本没有研究别人的东西!
作为一个IT落后于别国若干年的、从事IT的下游产业''外包〃的国家的IT从业人员, 我认为还是先研究别人的优秀的东西比较好!能够先研究别人的,然后消化,学为己用!一 心闭门造车实在遗憾!
三、JMS方向
JMS可能对大家来说是一个比较陌生的方向!事实上JMS是一个比较容易懂得,容易上 手的方向。要紧是JaVa消息服务,API也是相当简单的。只是在企业应用中相当广泛。 下面就介绍几个吧!
OPenJMS是一个开源的JaVa Message Service API 1.0.2规范的实现,它包含有 下列特性:
1.它既支持点到点(Point∙to∙point)(PTP)模型与公布/订阅(PUb/Sub)模型。
2.支持同步与异步消息发送。
3.JDBC持久性管理使用数据库表来存储消息。
4.可视化管理界面。
5. Applet 支持。
6.能够与JakartaTOmeat这样的SerVlet容器结合。
8.客户端验证。
9.提供可靠消息传输、事务与消息过滤。
3.ActiveMQ
4.JORAM
我个人推荐:OPenJMSActiveMQ!
四、EJB方向
EJB 一个比较''高级〃的方向。SUn公司曾经以此在分布式计算领域重拳出击。只是自从 出现了 SPring后大概没落了!这个方向单独开源的也比较少,要紧EJB 是与JNDIJDBCJMSJTSJTA结合在一起的是以很少有单独的。下面推荐两个只是 好像也要下载其它类库。
1.EasyBeans
五、J2EE容器
上面谈了这么多,都是J2EE的各个方向的。事实上J2EE是一个规范,J2EE的产品 通常要求专业提供商务必提供它们的实现。这些实现本身就是J2EE容器。市场上流行的 J2EE容器很多,在开源领域流行的只有很少,很少。其中最著名的是JBoSs
J2EE应用服务器领域,JboSS是进展最为迅速的应用服务器。由于JboSS遵循商业 友好
LGPL授权分发,同时由开源社区开发,这使得JbOSS广为流行。另外,JboSS应 用服务器还具有许多优秀的特质。
其一,它将具有革命性的JMX微内核服务作为其总线结构;
其二,它本身就是面向服务的架构(SerViCe-Oriented Architecture, SOA);
其三,它还具有统一的类装载器,从而能够实现应用的热部署与热卸载能力。因此,它 是高度模块化的与松耦合的。JbC)SS用户的积极反馈告诉我们,JbOSS应用服务器是健壮 的、高质量的,而且还具有良好的性能。为满足企业级市场日益增长的需求,JboSS公司从 2003年开始就推出了 24*7、专业级产品支持服务。同时,为拓展JbOSS的企业级市场, JbOSS公司还签订了许多渠道合作伙伴。比如,JbOSS公司同HPNovelk Computer AssociatesUniSyS等都是合作伙伴。
20046月,JboSS公司宣布,JbOSS应用服务器通过了 Sun公司的J2EE认证。 这是JboSS应用服务器进展史上至今为止最重要的 里程碑。与此同时,JbOSS一直在紧跟 最新的J2EE规范,而且在某些技术领域引领J2EE规范的开发。因此,不管在商业领域, 还是在
开源社区,Jboss成为了第一个通过J2EE 1.4认证的主流应用服务器。现在,Jboss 应用服务器己经真正进展成具有企业强度(即,支持关键级任务的应用)的应用服务器。
关于JBoSS的使用资料也非常多,甚至比商业软件的还多。有机会研究吧!
2.JOnAS
ApacheGeronimoApache软件基金会的开放源码J2EE服务器,它集成了众多 先进技术与设计理念。这些技术与理念大多源自独立的项目,配置与部署模型也各不相同。 GerOnimo能将这些项目与方法的配置及部署完全整合到一个统一、易用的模型中。作为 符合J2EE标准的服务器,GerOnimo提供了丰富的功能集与无责任Apache许可,具 备''立即部署〃式J2EE 1.4容器的各类优点,其中包含:
1.符合J2EE1.4标准的服务器。
2.预集成的开放源码项目。
3.统一的集成模型。
4.可伸缩性、可管理性与配置管理功能。
六、其它
讲了这么多大家可能很厌烦了!是不是很多很多啊!事实上不然,我们不可能的太多太多 了!不可能的太多太多了。不管你是不是J2EE高手,还是J2SE高手,有些东西你要绝对 很精明的。比如:LJaVaColIeCtionSFrameWork就是java的数据结构了,不仅要吃 透它,还要能按照需要扩展它,利用其思想创建•个自己的数据结构。2,网络编程确信要会 吧,现在以及以后很多程序都是不在同一台机器上的,不可能网络怎么行哦!3.IO确信要 会的吧!你的程序难道不用输入输出数据啊!整个IO包加NIO也有600多页的源代码 哦!4.JDBC你要会吧!数据库都不可能,在你的企业应用中你的数据又储存到哪里啊!文件 中一一太落后了吧!典型的没有学过J2EE。尽管数据库背后也是使用文件储存的。
5.Serverleh JSP你要是做网页做网站,确信要做到。问你-个简单的问题,网页中如何 实现分页啊!有具体方法的就在本 文章后发言吧!6∙ Ant要会吧!java语言中公布的工具, 类似与C中的make工具。7JUnit用过吧!单元测试软件。你不要啊!你的软件就没有bug! 你牛!(建议大家研究研究其源代码,很有用的框架,包含大量的设计模式,源代码不到100 页!看了只能感
叹一一高手就是高手)细心的朋友能够看到在你使用的很多IDE工具中都有 JUnit哦僦是它。
一切的一切才刚刚开始!有兴趣,有需要你能够研究数据库连接池的框架,如:C3P0Jakarta DBCP. DBPoOl.…能够研究J2EE框架Spring…….Web框架Struts……持久 层框架Hibernate.•…甚至开发工具Eclipse..…Sun领导的点对点通信的JXTA.•…报表工 具JFreeehartJaSPerRePOrtS..…分布式网络编程的CORBA、网络通信的JGROUPSXML解析的XerCeS.….(在不经意间开源己经步入你的电脑,不信啊!你JDK的安装目录 jdkl.6.0 src com sun org apache就是Xeces, 一个XML解析的著名的开源 项目)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。