应用服务器之间的可移植性;尽管EJB承诺提供高度可伸缩性,然而EJB系统的性能常常不够理想,而且EJB也并不是获得可伸缩性所必需的;EJB可能让简单的事情变的困难。
例如Singleton(单例)设计模式(或者与之类似的创建型模式)就很难在EJB环境下实现。
在现实的开发中,很多项目正是由于过度使用EJB而不得不重新设计,甚至是彻底失败。
为了解决上述架构中出现的问题,J2EE逐渐流行起了非EJB架构的轻型框架,其中Struts、Spring和Hibernate就是这些轻型框架中的杰出代表,在经历了广大Web应用系统开发人员的不断研究与实践,这三者的组合已经成为目前在J2EE平台下开发Web应用
系统中使用最为广泛的架构。
下面本文将对这三个框架的研究进行简单的介绍。
在基于J2EE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServer PagesOSP)的源代码中,采用HTML与Java代码混合的方式进行开发【3】。
因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,这给前期开发与后期维护带来巨大的复杂度。
为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts〔圳。
现在该框架产品被认为是最广泛、最流行的Web应用框架。
Struts在经历了持续发展后形成了两个截然不同的版本:Struts 1和Struts 2。
Struts 1是成熟的、被广泛采用的、
文档化的和被支持的版本。
Struts 2是基于Struts和WebWork的组合,是一个全新的版本。
WebWork是另一个流行的开源Java Web框架【l o】。
在本文中,重点研究的是Struts 1这一版本。
Spring的形成,最初来自Rod Johnson所著的一本很有影响力的书籍{ExpertOne—on—One J2EE Design and Development))〔11】,就是在这本书中第一次出现了Spring的一些核心思想,该书出版于2002年。
Spring是一个应用程序框架,它与Struts、Hibernate等单层框架不同,Spring致力于以一致的、高效的方式构造整个应用
程序,将单层框架的最佳组合糅合在一起建立一个连贯的体系结构【12】。
基于此,Spring自2004年3月一问世就受到许多技术人员的追捧。
2001年末,Hibernate的第一个正式版本发布了113】。
它在发布之初就受到了广大开发人员的热烈欢迎,并得到了大家的支持和赞许。
目前,Hibernate已经成为Java社区中事实上的对象关系映射工业标准【141。
它是自由的,开源的软件。
它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。
它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。
无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。
Hibernate不仅负责从Java类到数据库表的映射,还包括从Java数据类型到SQL数据类型的映射。
此外,还提供了面向对象的数据
查询检索机制,从而极大地缩短了在手动处理SQL和JDBC上的开发时间【l 51。
由于这三个框架都是基于Java的开源框架,因此目前国内外都有许多热衷于开源技术的研究人员和开发人员都仍在不停的对它们进行着探索和突破。
1.3论文工作介绍及章节安排 本文
工作在于阐述和分析现有的流行框架(Hibernate,spring,struts),在此基础上以论文的背景项目BOSSl.0系统为实例讲解框架的运用和相关的技术
问题的解决方案,使其形成一个具有一定集成度的软件开发架构。
由于本人在整个系统中完成的具体编码工作主要涉及到产品管理模块、采集模块、批价计费模块和系统的门户管理模块,因此,在对整个系统介绍时会主要介绍这几个模块的设计及实现
方案。
按照论述的内容,本文进行了如下的章