基于“Struts+Spring+Hibernate”架构技术的B2C电子商务系统的设计

来源 :商场现代化 | 被引量 : 0次 | 上传用户:yatai1980
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] 目前,轻量级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以及用户自定义标签组成,模型进行操作之后,其结果就是通过视图来显示的。在视图中不建议进行大量的数据处理操作和业务操作,只是给用户提供要处理的数据的显示。控制器(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)模式将应用程序的配置和依赖、规范与实际的应用程序代码分开。持久层——该层使用对象——关系映射(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系统中的作用
  为实现对Spring IOC容器的访问,应用代码可以通过如下两个接口完成:⑴BeanFact-ory:开发者借助于配置文件(如XML或属性文件)能够实现对JavaBean的配置和管理。⑵ApplicationContext:构建在BeanFactory基础之上,除了具有BeanFactory的功能之外,还添加了时间、声明(非)容器提供的服务等其它功能。主要用于开发J2EE应用,这也是Spring推荐使用的接口。
  首先我们看下B2C系统的ApplicationContext.xml文件片段,在文件中把数据库访问的代码封装成一个Bean,然后在XML文件里进行配置。在这里dataSource1这个Bean的生命周期分4个阶段:
  (1)实例化JavaBean(也就是dataSource1)。
  (2)JavaBean实例的初始化,即通过IOC注入其依赖性。这一阶段将完成JavaBean实例的初始化。
  <bean id=”dataSourcel”
  class=”org.apache.commons.dbcp.BasicDataSource”
  destroy-method=”close”>
  <property name=”driverClassName”
  Value=”net.sourceforge.jtds.jdbc.Driver”/>
  <property name=”url”value=”jdbc.jtds.sqlserver://172.18.1.8:
  1433;DatabaseName=webShop”/>
  <property name=”usename”value=”sa”/>
  <property name=”password”value=”lqaz2wsx”/>
  <property name=”maxldle”value=”5”/>
  </bean>
  (3)基于Spring应用对JavaBean实例的使用。一旦Spring创建,并初始化JavaBean实例后,应用就能够使用JavaBean实例了,因此,借助于getBean方法,电子商务系统开发者就能够在应用中进行使用。
  (4)IOC容器销毁JavaBean实例。
  <bean id=”dataSourcel”
  class=”org.apache.commons.dbcp.BasicDataSource”
  destroy-method=”close”>
  在不同的事务服务间切换,只会涉及到Spring配置文件的修改,而不会涉及到代码的修改。
  4.B2C系统Hibernate持久化层开发
  Hibernate是连接Java对象模型和关系数据模型的桥梁,现在越来越多的Java开发人员把Hibernate作为企业应用和关系数据库之间的中间件,以节省和对象持久化有关的三层以上的JDBC编程工作量。
  (1)系统的Hibernate数据持久层功能实现可通过hibernate-sevice.xml进行Hibernate属性的设置,设置内容如下:
  <server>
  <mbean code=”org.jboss.hibernate.jmx.Hibernate” name=”jboss.har:service=Hibernate”>
  <attribute name=”DatasourceName”>java:/OracleDS
  </attribute>
  <attribute name=”Dialect”>net.sf.hibernate.dialect.Oracle9Dialect</attribute>
  <attribute name=”SessionFactoryName”>
   java:/hibernate/SessionFactory</attribute>
  <attribute name=”CacheProviderClass”>
  Net.sf.hibernate.cache.HashtableCacheProvider</attribute>
  </mbean >
  </server>
  建立数据持久层时,就可以先为服务器中的数据表定义实体Bean(Entity Bean)了。
  (2)Hibernate映射框架根据与每一对实体类和数据表相关的XML映射文件来实现ORM,通过Hibernate中的ant hibernate命令建立了每个实体类的XML文件。每一个描述数据表的实体类都有相应的XML文件,保证执行业务逻辑处理时通过会话Bean调用实体Bean,可以实现对服务器数据库的无缝访问。
  (3)创建“对象——关系”映射文件。Hibernate采用XML格式的文件来指定对象和关系数据之间的映射,在运行时,Hibernate将根据这个映射文件来生成各种SQL语句。这一步所创建的文件,它用PromotionEvent类映射到PR0M0T10-NEVENT表,这个文件应和PromotionEv-ent.Class文件放在同一目录下。
  (4)通过Hibernate API编写访问数据库的代码。Hibernate对JDBC进行了封装,提供了充分面向对象的API。
  三、结束语
  本文使用了轻量级J2EE架构Struts+Spring+Hibernate对电子商务系统B2C核心系统进行了设计,并分析了各个环节的关键技术和实现问题。使用这一技术设计的商务系统很好地把业务逻辑和表示层分离,这种分离使得系统不至于“牵一发而动全身”,同时,也便于业务逻辑模块的重用。这三种技术结合起来充分利用它们的优势,使得基于这三种技术的B2C商务系统应用框架开发简洁、结构清晰,有很好的可扩展性和可维护性,适用于面向对象的设计与开发。另外,本文所开发的B2C电子商务系统特别适用在学校和大型商场等人员密集、且可能发生集中支付的组织内使用。
  
  参考文献:
  [1]李伟镰卢建朱:基于Struts和Hibernate的电子申购系统[J].计算机工程,2005,31(19):220-222
  [2]杨明根郑明秀廖浩德:Struts+Spring+Hibernate架构及开发方法[J].西南民族大学学报•自然科学版,2007,(4):953-956
  [3]廖福保张文梅:基于Struts-I-Spring-I-Hibernate框架的应用研究[J].广东农工商职业技术学院学报,2007,(11):51-54
  [4]李保华:基于Struts+EJB+Hibernate的授信风险管理系统设计[J].计算机与信息技术,2007,(4):87-89
  [5]王非丁元林文昌:应用架构技术设计与开发电子商务系统[J].计算机工程与设计,2007(11):5507-5510
其他文献
[摘要] 本文在回顾了国内外学者对企业财务危机的研究后,以Z值模型为工具,以2002年~2006年农业上市公司年度报表为数据来源,对40家在研究期间均在A股上市的农业公司的财务状况进行考察,分析出现财务危机的原因,最后提出增强财务安全性的建议与对策。  [关键词] 农业上市公司 财务危机 Z值模型 原因分析 对策与建议    随着我国资本市场的发展以及国家对农业产业的政策支持,很多农业企业拥有到证
期刊
[摘要] 根据云南元阳哈尼梯田湿地生态旅游的开发现状,运用SWOT分析方法分析了其存在的优势和劣势,以及面临的机遇和威胁,并在此基础上提出了哈尼梯田湿地相应的生态旅游可持续发展策略。  [关键词] 哈尼梯田湿地 生态旅游 SWOT分析 发展策略 元阳 云南    哈尼族主要分布在云南省南部红河与澜沧江之间的哀牢山和无量山地区,哈尼梯田湿地是以哈尼族为主体的各兄弟民族的梯田湿地的统称。云南省红河哈尼
期刊
[摘要] 本文介绍了文本挖掘的研究状况,分析了文本挖掘的基本概念和技术,总结了文本挖掘的过程,特征的建立、特征集的缩减、常用算法、模式的提取与评价等,展望了文本挖掘的未来研究问题和方向。  [关键词] 文本挖掘 文本特征 词频矩    一、引言    随着Internet 应用的普及,Web已经发展成为拥有10亿页面的分布式信息空间,而且这个数字仍以每半年翻一番的速度增长。在这些海量数据当中,大部
期刊
[摘要] 21世纪知识经济的到来,人才成为最重要的战略性资源。然而,我国高新企业的人力资源管理存在很大的问题,如员工流动性高,企业缺乏技术创新等等,这些都源于企业缺乏一套系统科学的人力资源管理方法。通过对高承诺人力资源管理理论以及我国高新企业人力资源管理现状的分析,发现高承诺人力资源管理中的一些方法正好可以解决这些问题。因此,总结出一些方法,希望能够为我国高新企业的发展指明道路。  [关键词] 高
期刊
[摘要] 本文详细研究分析了SQL Server 2005与Oracle之间数据事务复制、合并复制等类型,及其具体配置实现。这为异构数据源之间的数据交换提供了切实可行的解决方案。  [关键词] SQL Server 2005 Oracle 复制    SQL Server 2005是微软的新一代数据管理和分析解决方案,为企业级数据和分析应用程序提供了更强的扩展性、可用性和安全性。Oracle 是以
期刊
[摘要]保税港区是我国对外开放进程的必然产物,其具有十分突出的要素集聚动能、辐射带动功能和政策示范等功能。钦州保税港区是中国—东盟自由贸易区建设的重要触发器和“撬板”,设立钦州保税港区是发挥广西北部湾经济区优势条件的要求,将极大提升经济区的战略地位。  [关键词]区域经济 北部湾经济区 保税港区 发展战略    保税港区是指经国务院批准设立的,在港口作业区和与之相连的特定区域内,集港口作业、物流和
期刊
[摘要] 企业电子商务活动都必须依赖于电子商务网站平台,因此企业纷纷建立自己的电子商务网站,而在企业建立电子商务网站过程中,电子商务网站的规划至关重要。本文阐述了电子商务网站规划的重要性以及电子电子商务网站的类型、首页、内容、功能、信息结构等的规划。对企业建立电子商务网站具有一定的指导意义。  [关键词] 电子商务 电子商务网站 网站规划    随着互联网的普及和发展,越来越多的企业,都把目光投向
期刊
[摘要] 本文以我国出口企业为视角,分析了国际贸易应收账款的内涵及其对于出口商的风险,指出国际保理结算方式是解决我国出口企业巨额应收账款难题的有效途径,并提出国际保理在国际贸易和应收账款回收方面的具体措施及运作流程。  [关键词] 国际贸易应收账款 国际保理 我国出口企业 巨额应收账款    随着中国企业国际化的进一步发展,国际贸易额也大幅度上升,而与此同时,海外欠款,即海外应收账款或国际贸易应收
期刊
[摘要] 中国的旅游业在近几十年有了长足的发展,带给经济社会的贡献也日益呈现。但是作为旅游六大要素之一的旅游购物是中国旅游业发展中一个薄弱环节。为挖掘中国旅游购物业的巨大潜力,笔者力争从消费者角度全面整理制约我国旅游购物品消费需求的因素。  [关键词] 旅游购物品制约因素消费者    一、研究背景及意义  旅游业发展的经济贡献是众所周知的,它除了能帮国家获得外汇之外,还能扩大就业等。至于旅游购物,
期刊
2007年1月25日,中国互联网络信息中心发布《第19次中国互联网络发展状况统计报告》显示,截止2006年12月31日,中国国内网民已达到1.37亿,与去年同期相比增加了2600万人,增长率为23.4%。至此,中国网民总数占总人口比例由去年的8.5%上涨为10.5%,首次突破10%。截止到2006年底,中国网站数约为84.3万个,年增长近15万个;中国网页总数有44.7亿个,与去年同期相比增加20
期刊