龙源期刊网 http://www.qikan.com.cn
基于“Struts+Spring+Hibernate”架构技术的B2C电子商务系统的设计
作者:陶祥亚 樊 华
来源:《商场现代化》2008年第19期
[摘要] 目前,轻量级J2EE架构Struts+Spring+Hibernate已渐渐成为B2C电子商务系统的主流技术。本文在对Struts、Spring和Hibernate进行分析的基础上,对B2C电子商务系统进行了整体设计,并对该架构下电子商务系统的技术实现进行了详细说明,并给出了相关构造的功能描述和部分核心代码。本研究中所用的架构技术能提高商务系统的安全性和稳定性,使商务系统资源得到最大限度的节省和利用,同时使系统具备更好的可扩展性和可维护性。 [关键词] Struts+Spring+Hibernate 电子商务系统 设计
纵观电子商务的发展历史,大概可分为两个阶段。第一阶段是产品介绍阶段,即通过互联网公布企业和产品信息,类似于传统的广告方式;第二阶段是产品交易阶段,企业间通过基于互联网的定单交易系统,直接在网上完成交易,主要表现形式有电子采购、电子销售和电子交易市场三大类网站。目前,大多数的电子商务系统主要由供求系统、新闻发布系统、“知道”系统、B2C系统四部分构成。其中B2C系统是电子商务系统的核心系统,为整个商务平台构建了一个基本框架,主要提供电子商情,能够促进消费者购买商品,从而产生电子购物和交易。随着Internet的迅猛发展与J2EE技术的成熟,使用Web应用框架的开发者的人数得到了快速地增长。框架通过为应用开发提供预先准备好的起步器,来帮助开发者更快、更好地建立应用。框架的使用正在得到快速地发展,现在已经有几十个可选的Web应用框架,在这些框架中比较流行的轻量级J2EE架构是Struts+Spring+Hibernate。本文研究的是利用“Struts+Spring+Hiber-nate”架构技术对电子商务系统的核心系统B2C所进行的设计。 一、Struts、Spring和Hibernate简介 1.Struts MVC设计模式
Struts MVC(Model-View-Controller)把一个应用程序数据的输入、处理、输出处理操作流程划分为模型层、视图层和控制器。这三次的具体业务规则如下:模型层(Model),表示业务逻辑和业务规则,Struts MVC为模型提供了Action和ActionForm两个对象。由ActionForm 进行数据封装,Action进行业务处理,模型可以用JavaBean、Hibernate等组件技术来处理数据库的访问。视图层(View),它就是我们通常所说的表示层。Struts的视图是由JSP以及用户自定
龙源期刊网 http://www.qikan.com.cn
义标签组成,模型进行操作之后,其结果就是通过视图来显示的。在视图中不建议进行大量的数据处理操作和业务操作,只是给用户提供要处理的数据的显示。控制器(Controller),它用于管理模型与视图发生的交互。在Struts中主要的控制器组件有struts-contig.xml和
ActionServlet。用户进行数据处理时,它不能直接去执行模型,而是通过控制器来间接地实现。控制器控制视图提交数据,然后由控制器控制相应的模型层进行数据处理操作。模型处理完数据后,再由控制器找到相应的视图进行数据的显示。 2.Spring框架
Spring是一个开源框架,它是一个以控制反转(IOC)和面向切面(AOP)编程为基础的轻量级框架。Spring通过控制反转(inversion of contro1,IOC)这一机制实现降低代码耦合度。当应用控制反转时,对象都是被动地给予它们的依赖,而不是主动地去创建或寻找它们的依赖对象。同时Spring为面向切面编程提供了有效的支持,面向切面编程能使来自系统服务的单个的应用业务逻辑粘合起来。应用对象做它假定做的业务逻辑,其它的就什么也不做。Spring作为容器,可以管理自己的生命周期和配置应用对象。使用者可以通过配置原形来让Bean彼此创建或者通过创建一个单一实例或者在每次需要的时候创建一个实例,当然这些原形要彼此互相关联。 3.Hibernate框架
Hibernate是一种实现对象和关系之间映射(Object RelationMapping)的框架。它是一种新的ORM映射工具,它同时提供了从Java类到数据表的映射和数据查询、恢复等机制,实现数据层对象的持久性。相对于使用JDBC和SQL来手工操作数据库,使用Hibernate可以大大减少操作数据库的工作量。并且Hi.bema可以和多种Web服务器以及应用服务器良好地集成。Hibernate是JDBC的轻量级对象封装,这使得Java程序员可以使用面向对象的编程技术来操作关系数据库,而不必花费大量的时间去更新和维护复杂的数据持久层.从而降低J2EE架构应用软件开发的难度和复杂度。提高Java应用软件的开发效率。 二、基于Struts、Spring、Hibernate的B2C电子商务系统的设计 1.B2C系统整体设计
根据电子商务系统的主要构成情况,笔者利用Struts+Spring+Hibernate架构技术对B2C系统的框架进行了设计,分别设计有表现层、业务逻辑层、持久层。
表现层——提供与用户交互的界面。GUI(图形用户界面)和web页面是表现层的两个典型例子;业务逻辑层——该层借助了Spring,通过控制反转、AOP应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性。spring框架是—个分层架构,由七个定义良好的模块组成,其中最重要的模块就是核心容器,核心容器定义了创建、配置和管理bean的方式,提供Spring框架的基本功能,核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖、规范与实际的应用程序代码分
龙源期刊网 http://www.qikan.com.cn
开。持久层——该层使用对象——关系映射(ORM)开源项目Hibernate,Hibernate为java提供了ORM持久化机制和查询服务,通过在XML文件中定义对象和关系的映射关系。 层与层之间的关系特征:首先,每个层由一组相关的类或组件构成,共同完成特定的功能。其次,层与层之间存在自上而下的依赖关系,即上层组件会访问下层组件的API,而下层组件不应该依赖上层组件。例如,表现层依赖于业务逻辑层,而业务逻辑层依赖于持久层。最后每个层对上层公开API,但具体的实现细节对外透明。当某一层的实现发生变化,只要它的API不变,不会影响其它层的实现。 2.B2C系统Struts表现层开发
Struts的核心控制器由ActionServlet类和Action类来实现。ActionServlet类在电子商务系统MVC模型中扮演中央控制器的角色,主要负责接收HTTP请求信息,它通过存储在特定的XML文件中的struts-config.xml的配置映射信息把请求转发给适当的Action对象,一个电子商务系统用户请求就是通过ActionServlet被进行处理和转发的。
下面是B2C电子商务系统中一个子模块的Struts-config.xml文件片段的范例。Struts-config.xml是Struts的核心配置文件,要跟业务逻辑层相结合,同时也加载了Spring,其关键代码如下:
<action-mappings> <action path=”/order”
type=”org.springframework.web.struts.DelegatingActionProxy”name=”OrderForm”>
</action>
</action-mappings> <! - - = = Spring plugin - - >
<plug-in className=”org.springframework.web.struts.ContextLoaderPlugIn”> <set-property property “contextConfigLocation”value=“/WEB-INF/classes/ applicationContext.xm1./WEB-INF/Classes/action-servlet.xml”/> </plug-in>
3.Spring在B2C系统中的作用