J2EE开发框架发展简史 开源框架的出现

开发 后端
本文简单介绍了J2EE开发框架的发展历史。Java2企业版为中间件领域思想的统一上发挥了很大的作用。比如,J2EE为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。

Java2企业版为中间件领域思想的统一上发挥了很大的作用。比如,J2EE为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。J2EE的基础——Java2标准版(J2SE) ,成功地为Java提供了一套访问关系数据库的标准。

但是,就像本文中“J2EE缺乏对编程的支持”提到的一样,J2EE这个平台没有能够提供一个令人满意的应用程序编程模型(application programming model)。

Sun公司和一些大的应用服务器供应商都想用开发工具来降低J2EE开发的复杂性,但是这些工具没有其他的JAVA 开发工具优秀,后者有先进的重构工具,和.NET平台相比,J2EE的工具支持显得很逊色。

很多J2EE开发工具自动产生的代码像这些工具本身同样复杂。在开源社区很多小型J2EE开发者选择了另外一种开发方式—— 一些可以降低J2EE开发难度的开发框架,较为流行的比如:Struts, Hibernate, 和 Spring 架构,他们在当今很多J2EE项目中扮演着重要角色。

为什么要采用框架?

框架是由一些类组成,正是这些类为应用程序提供了一个可重用的设计,或者我们经常提到的,应用程序中的一层。应用程序代码访问类库从而执行任务,而框架是调用应用程序代码,从而管理程序的流程。这就是经常说道的好莱坞原则:“不要试图联系我们,我们到时候自会通知你。”开发者写的程序在运行时由框架调用。

设计一个在各种未知背景下都可以使用的框架是很有挑战性的。框架很适合在复杂的J2EE开发中使用,它可以为开发者提供一个简单易用的模型。

采用一个经过良好设计的开源框架有很多好处:

◆在好的框架下,开发者只需要写一些必须的代码;他们不需要直接接触底层的API。 这一点很重要。

◆经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性。好清晰的结构使得其他人可以更容易加入项目。

◆一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践。

◆采用成功的框架的代码比自己的代码容易测试

◆框架只有提供了一些值得使用的功能才会变得流行。J2EE工程只有真正需要框架的时候才会用它,而自己的框架并不是这样,后者是处于统治地位的。

J2EE本身也提供了一些框架。比如, Enterprise Java-Beans (EJB) container或者 Servlet engine,二者都运用了“ 采用了好莱坞原则”这个思想,并采用运行时调用来管理对象。像Struts这些开源web应用框架正是建立在这两个框架的基础上的,本文讨论的重点也是像Struts这样建立在J2EE上的开发框架,他们为开发者提供了更为简单的模型,和其他的一些好处。

开源框架的出现

很多大型的J2EE项目都用自己的内部框架来隐藏平台的复杂性,直到最近人们才逐渐发现一些在很多项目中都存在的共有的难题,这些难题都可以由一个较为统一的解决方案来解决。而有的框架正好可以充当这些问题的解决方案。现在有种很明显的趋势:与从前的内部框架相比,这些框架将成为这些难题的更加“标准化 ”的解决方案。

J2EE平台的日益成熟是这些框架流行的一个原因。开发者知道有些地方是J2EE的标准API无能为力的,依他们的经验来看,要弥补这个缺陷是很困难的。与此同时,一些优秀的开源框架可供使用,它们提供了极为丰富的技术文档,在它们背后还有一个专业的团队做支持,并且一切都是免费的。

Struts

Struts,在web应用程序产生时就有的开源框架。在1999-2000年,开发者们意识到JSP“Model1”的缺陷,JSP中充斥着请求处理代码和静态数据模板,这意味着你不得不把业务逻辑和复杂的HTML以及其他的标签混到一起。

那个时候还没有标准的框架和J2EE的标准支持,要解决这个问题开发者就得自己实现前端控制器,这样可以把业务逻辑分离到java类中,从而可以减轻对JSP的维护难度。

前端控制器模式经常运用在MVC架构中,MVC模式在OO语言的GUI开发中经常使用(这个名字总是让人误解,WEB MVC中的视图是从模型中“拉”数据;而在经典MVC中,模型把事件“推向”视图)。

最初的前端控制器实现质量参差不齐。2001~2002年间,Apache开源组织(http://struts.apache.org)发布的Struts改变了这个状况,虽然它并非一个完美的框架,但已经足够使其成为该领域事实上的标准。

Struts向人们展示了开源框架的一些优点,比如,新手可以很容易地熟悉它的结构。2002年末,它成立很多J2EE项目很自然的选择,每一个认真的J2EE开发者都会对它很熟悉。

Struts几乎用在每一个J2EE项目中,这使得它成为J2EE架构的一个重要组成部分。甚至很多保守的组织也将其作为软件底层的一部分,并同意接受Apache的开源协议条款。

Hibernate

下一个倒下的多骨诺米牌就是持久化。J2EE提供了两个持久化的手段:JDBC,它是J2SE中访问关系数据库系统的标准API;另一个是实体Beans ,它是EJB中专门模型化持久化实体的组件。

JDBC以一种错误的编程模型来强制开发者用Java代码来处理关系思想。而实体beans,先不说Sun和其他主要的J2EE供应商的吹嘘,给人很笨重的感觉:起初这门技术的应用范围很窄,连持久对象间的关系都不能处理。它使得应用程序难于测试,并且使用了一个很糟糕的查询语言。直到2003年,即使EJB2.0和2.1做了很多改进,开发者们却很少用它。

早期的尝试。持久化问题的解决方案是由关系-对象映射(ORM)来解决的,它可以透明地持久化普通java对象(POJO)。该思想在注释中有解释。虽然这种方案并不是专属java的。但相对与其他的社区而言比如.NET,ORM在java社区更加流行(.NET开发者总是对之抱有怀疑的态度)。

【编辑推荐】

  1. J2EE开发框架发展简史续
  2. J2EE下使用JNDI
  3. J2EE笔试题目节选 Java的通信编程
  4. J2EE笔试题目节选 Java基础系列
  5. 简单解析J2EE架构:工具包的集合
责任编辑:book05 来源: 百度博客
相关推荐

2009-06-19 00:05:00

J2EE开发框架POJO

2011-11-25 14:59:36

JavaJ2EE框架

2012-02-14 09:48:04

Javabbossgroups

2012-02-21 09:48:10

JavaJ2EE

2009-06-22 17:38:05

J2EE框架

2009-06-22 17:20:33

J2EE框架

2012-01-17 10:22:07

JavaJ2EEJBoss

2009-06-18 16:13:14

J2EE开发

2009-06-10 13:37:06

J2EE可伸缩性J2EE灵活性J2EE维护

2009-06-10 14:10:23

J2EE学习J2EE是什么

2009-06-23 08:10:47

J2EE开发开源项目

2009-06-22 17:09:00

J2EE项目开发流程

2009-06-23 08:06:46

J2EE体系架构J2EE模型J2EE设计模式

2009-06-23 16:48:26

J2EE常见问题J2EE平台

2009-06-11 17:06:11

J2EE历史Java EE概述

2009-06-16 11:14:00

Hibernate+SJ2EE应用开发

2011-07-21 14:23:03

J2EE

2012-03-13 14:06:39

JavaJ2EE

2009-06-11 17:11:07

J2EE设计模式工厂模式

2009-06-18 15:54:57

J2EE下使用JNDI
点赞
收藏

51CTO技术栈公众号