基于J2EE的电子商务系统开发框架

龙源期刊网 http://www.qikan.com.cn

基于J2EE的电子商务系统开发框架

作者:吕善国 陈红丽

来源:《中国市场》2008年第41期

摘要:提出了基于J2EE的电子商务系统开发框架,采用了多层结构,将表现逻辑、业务逻辑和数据逻辑相分离,通过集成轻量级框架Struts、Spring、Hibernate加上页面框架实现了该开发框架,保证程序具有松耦合性和易扩展性。 关键词:J2EE;框架;Struts;Spring;Hibernate

中图分类号:TP393 文献标识码:A 文章编号:1005-6432(2008)41-0069-02

J2EE通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上多层应用可以实现高可用性、安全性、可扩展性和可靠性。本文通过集成Struts、Spring、Hibernate这三种轻量级框架技术,提出了一种构建基于J2EE的电子商务系统的开发框架。

一、开发框架的体系结构

开发框架采用典型的多层结构(见下图)。

龙源期刊网 http://www.qikan.com.cn

各层次间相对独立和松散耦合,模板使得页面开发可以遵循统一的页面布局和使用统一的页面交互控制。具有较好的移植性、可扩展性、易维护性和高效性。 1.表示层

表示层一般采用JSP,它仅负责显示Web层的结果和与客户的交互。在这一层使用页面框架来处理Web界面布局和Web交互的统一控制开发,页面框架提供了将每个页面共同拥有的元素与那些随页面变化的元素相分离的方式,通过把所有的通用元素放进一个文件中,使得所有的页面容易维护和外观一致。页面框架包含登录界面(包括用户名、密码及验证码等),界面主框架(包含标题、菜单栏、工具栏、布局),样式库(用于控制网页的样式)以及引用库(这些公共文件在页面开发时被包含进去,减少了页面开发时所写代码的数量和难度)。 2.Web层

Web层采用Struts框架实现, Struts框架把应用分成3部分,分别为模型、视图和控制器,并且尽量降低各部分间的耦合。Struts的控制器是通过Action Servlet对象实现的,这个控制器获得视图(JSP)的请求后根据ActionMapping对象调度相应的模型(Action对象)执行业务逻辑,并根据获得的处理结果(Action Forward对象)装配视图(JSP)来响应。同时通过Action Form对象封装数据在模型和视图之间交互使用。 3.业务层

龙源期刊网 http://www.qikan.com.cn

业务层采用Spring框架,Spring框架的核心是IoC(Inversion of Control,控制反转)/DI(Dependence Injection,依赖注射)机制。IoC就是把组件之间的依赖关系提取出来,由容器来具体配置。DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(比如构造参数、构造对象或接口)注入到组件之中。IoC/DI机制有三种实现类型:Type1接口注入(即工厂模式)、Type2构造子注入(在构造方法中实现依赖)、Type3设值注入(使用setter方法实现依赖)。

在处理Web层与业务层之间的交互时,采用Facade设计模式达到了业务层为Web层只提供一个接口(Business Facade)的目的,从而减少系统的重复代码,降低模块间的耦合度,提高了可维护性。 4.持久层

持久层用Hibernate来提供数据访问服务。Hibernate是一种成熟的O/R Mapping框架,支持大部分主流数据库。持久层采用DAO(Data Access Object)设计模式,抽象和封装了所有对数据源的访问,减小了持久层和业务层的耦合度。在需要数据的时候,通过DAO访问数据库,数据源实现发生变化时,DAO向客户端提供的接口不会变化,不会影响客户端或者业务组件。

5.域模块层

域模块层由实际需求中的业务对象组成,它对应于数据库系统中的二维表。业务对象分为两种:持久化对象PO(Persistent Object)和值对象VO(Value Object)。PO是物理数据实体的一种对象表示;VO是便于业务逻辑实现的业务对象。PO和VO是相对独立的,我们采用DTO Factory (Data Transfer Object Factory)模式将持久层PO组装或分解为业务层的VO,这就实现了业务层和持久层之间数据的传递,在很大程度上减小了业务层和持久层的耦合度。 6.数据层

数据层一般采用关系型数据库系统。由于采用了持久层隔离数据操作,保证了开发框架可以容易地获得跨数据库的能力。

二、开发框架的优点

本开发框架分离了系统中表现逻辑、业务逻辑和数据逻辑,集成了多种开源优秀的轻量级框架,并采用相关的设计模式,在基于Web的电子商务软件开发中采用本框架存在诸多优势:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4