基于SSH框架的农特产品网上销售系统构建

2017-12-02 07:36刘方
软件导刊 2017年11期
关键词:S结构电商平台

刘方

摘要:针对农特产品网上销售需求,基于SSH框架构建了一款农特产品网上销售系统。采用SSH多层整合框架技术,通过清晰分层结构与松散耦合设计,对系统主要功能与整体架构进行了开发与实现。应用结果显示,该系统运行稳定、复用性强、便于维护,能满足消费者购买过程中各种需求,为特色农产品产销对接及流通提供良好服务。该系统开发表明,采用SSH架构设计模式,使程序层次更加清晰,且能简化开发过程并易于控制。

关键词关键词:农产品销售;SSH;MVC;B/S结构;电商平台

DOIDOI:10.11907/rjdk.172246

中图分类号:TP319

文献标识码:A文章编号文章编号:16727800(2017)011009404

0引言

随着信息技术发展,“互联网+”模式也逐渐融入传统农业,特别是农村电商平台,在提升特色农产品产销对接与流通效率,扶持农村青年创业,以及帮助大学生村官探索村级经济产销模式转型方面,正发挥着积极作用。

本文基于SSH架构设计并实现了一款农特产品网上销售系统,以大别山区生态绿色农特产品为产销服务对象,旨在通过B2C电商平台形式,为农村扶贫开发与农产品产销配送提供新方式与手段。

1系统功能

构建农特产品网上销售系统,其功能应充分展示农特产品信息、满足客户购买需求,为顺利完成购销双方交易活动提供良好服务。该系统为基于B/S结构的Web系统,分为前、后台2部分。

1.1前台模块

前台模块用户角色包括浏览用户与会员用户。实现主要功能有:

(1)商品浏览。实现商品类别分级显示,提供人气商品(按商品浏览量多少排序)、热销商品(销量较多)及推荐商品展示。

(2)会员管理。使用购物车功能,用户需要验证身份。注册会员并登录后,才可进行购物及生成订单系列操作。

(3)购物车管理。包括保存商品购买信息,调整某商品订单条目信息,以及创建购物订单、实时网上支付等。

农特产品网上销售系统前台功能结构如图1所示。

图1农特产品网上商城前台功能结构

1.2后台模块

系统后台功能为管理员设计,主要提供类别管理、商品管理、订单管理等3大功能。

管理员登录后,可进行商品类别与商品信息维护(添、删、改、查),上传农特产品相关图片、介绍,修改、查询订单状态以及自定义查询等操作。

农特产品网上销售系统后台功能结构如图2所示。

2系统架构

2.1SSH框架

本系统实现基于SSH轻量级架构,它由J2EE的3个主要框架技术组合而成。

(1)Struts框架。该框架基于MVC设计模式,可將软件功能分层化,通过控制器将视图与访问控制分离,使模块结构更加清晰[1]。

(2)Spring框架。该框架优势是分层架构技术,允许对其所提供的7个模块自主选择合适模块[2]。Spring核心理念是依赖注入,即将程序之间依赖关系转移到外部容器中。程序不再自己建立对象,而是由Spring容器根据需要动态地建立并注入对象,简化系统开发难度。

(3)Hibernate框架。该框架基于对象/关系映射(ORM)技术[3]。通过映射机制,将对数据库中表记录处理变成对Java对象的处理,使程序员可将对数据库操作转换成面向对象语言的操作,减轻编程工作量。

SSH架构融合了三者优势,Struts MVC模式,可方便地搭建系统整体架构;ORM框架,能直接持久化复杂的Java对象,将面向对象操作转化为底层SQL操作;IoC机制,提供强大Bean工厂容器,通过配置方式来描述对象及依赖关系,实现了层间松耦合。SSH是目前应用较广的Web应用开发框架。

2.2系统分层

系统在整体设计上,采用了SSH分层构架技术,分为视图表示层、业务层、数据持久层(PO)。其中业务层又细分为:Web控制层(Struts的Action)、业务逻辑层、数据操作层(DAO)。各层相互独立,分工明确,层之间通过通信接口联系。分层设计架构如图3所示。

图3系统分层架构

分层架构中,Struts将页面与访问控制分离,当它要执行控制逻辑时,就调用Action模块,Action在处理中若要访问数据库,则通过负责实现业务逻辑的Service组件。而Service需调用DAO接口实现类中的方法,才直接操作数据库[4]。Hibernate将数据库表持久化为POJO类,DAO类再以面向对象方式从POJO类中读取数据[5]。整合框架以Spring为核心,所有组件包括DAO、Service与Action,都由Spring的ApplicationContext.xml文件进行配置管理。

3系统设计与实现

3.1数据库

根据系统业务功能分析,设计出系统数据库主要数据表:customer_info表(会员)、order_info表(订单)、order_Detail表(订单明细)、product_info表(商品)、productsort_info表(商品类别)、Admin_info表(管理员)、uploadfile_info表(上传文件)。上述表关联关系如图4所示。

图4系统数据表关系

3.2视图表示层

视图表示层是Web前端界面,采用HTML、JSP、Struts标签加以实现,在这些JSP文件中不需进行任何实际业务处理。

3.3业务层

业务层主要以Spring为集成环境[6],整合以下各层:

3.3.1Web控制层endprint

即指Struts的Action业务控制层,其功能是当用户请求到达Struts控制器核心,根据Struts.xml配置信息,转发给业务控制器Action完成数据处理,并根据处理结果,决定跳转至相应页面。Action并不承担直接处理业务逻辑,而是调用业务逻辑层组件完成处理。

Web层实现:①创建Action类(根据对用户请求处理逻辑编写);②配置Struts.xml文件,让程序执行成功后跳转到对应页面;③将Struts2的Action类创建交给Spring;④在Action对象中,通过Spring的IoC将ordersService业务组件注入。

3.3.2业务逻辑层

业务逻辑层通常包括Service接口与接口实现类。其职责是提供处理应用程序业务逻辑与业务校验,需要依赖调用DAO接口方法对数据库执行操作。

Service组件实现:创建相应Service接口及接口实现类,在Spring的ApplicationContext.xml文件中进行配置。

3.3.3数据操作层

数据操作层通常包括DAO接口与接口实现类。DAO核心思想是将底层数据库访问操作与业务层逻辑分开,Dao组件封装了数据库增、删、改、查等操作细节,所有数据库访问都通过Dao组件完成。

DAO实现:首先创建相应DAO接口与接口实现类,在Spring的ApplicationContext.xml文件中进行配置。

下面以“结算下订单”为例,说明实现上述业务时各组件调用关系:①用户点击“Submit”按钮,该请求到达服务器,FilterDispatcher作为控制器中心,负责分配工作,决定调用Account.java,并回调其execute()方法,实现下订单功能;②AccountAction类调用业务层OrdersService接口save()方法,该方法则调用DAO层OrdersDAOImpl类save(OrdersVo new Order)方法,完成数据访问,实现将订单项信息存入数据表;③OrdersDAO完成下订单操作后,依次返回信息;④核心控制器根据返回的success以及struts.xml文件配置,找到order_list.jsp文件,执行该文件,转换成HTML页面(订单列表),传递给浏览器。各层组件调用时序如图5所示。

图5订单功能实现时序

上例中,Spring的IOC容器通过配置文件,对AccountAction对象、OrdersServiceImpl对象、OrdersDAOImpl对象生成进行管理,并通过依赖注入,将OrdersDAO注入到OrdersService中,再将OrdersService注入到AccounAction中,实现无缝集成[7]。

配置在ApplicationContext.xml进行依赖注入部分代码如下[8]:

ref bean="ordersDAO" />

3.4数据持久层

数据持久层设计在MyEclipse运行环境下通过Hibernate框架完成。

首先创建与数据表对应的Hibemate持久化类及与持久化类对应的映射文件。在IoC容器中,对上述映射文件进行注册。接着实现数据库连接。Spring与Hibernate整合后,Spring容器会利用LocalSessionFactoryBean自动创建本地Hibernate的sessionFactory实例对象并接管DAO,并可为其注入dataSource引用[9]。通过ApplicationContext.xml文件配置,dataSource(数据源)被注入到sessionFactory中,sessionFactory被注入到DAO中。

以“结算下订单”为例,先在项目文件夹下domain包中,创建与数据表Orders表对应的持久化类OrdersVo.java与映射文件Ordersvo.hhm.xml,該表中存储有会员订单信息。由于DAO注入了sessionFactory对象,而sessionFactory中保存有当前数据库配置信息,因此用OrdersDAOImp类调用HihernateTemplate模板save(newOrder)方法,即可实现将持久化类OrdersVo.java中数据,保存于数据表Orders中对应记录项[10]。

ApplicationContext.xml部分代码如下:

<!配置Hihernatese sessionFactory bean>

class="org.springframework.orm.hiber-

nate3.LocalSessionFactoryBean">

org.hibernate.dialect.MySQLDialect

<!配置映射文件>

domain/cartvo.hbm.xml

domain/ordersvo.hbm.xml

该系统实现部分界面如图6、图7所示。

图6商城前台主界面

图7商城后台系统界面

4结语

本文针对农特产品网上销售需求,基于Struts2+Spring+Hibernate整合框架技术,设计并实现了一款农特产品网上销售系统。系统开发过程表明,运用SSH架构技术,不仅简化了系统开发过程,也使程序设计更加合理,运行更加稳定。

参考文献参考文献:

[1]孟凡奇,曲朝阳,侯松林.SSH架构在导师实验室综合管理系统开发中的应用[J].计算机应用与软件,2013,30(8):174177.

[2]余颖,李晓峋,欧阳纯萍.一种SSH框架的在线程序自动评判系统的设计与实现[J].南华大学学报:自然科学版,2012,26(4):6568.

[3]堪湘倩,狄文辉.基于J2EE轻量级框架的移动卡类渠道销售管理系统[J].计算机工程与设计,2009(17):9597.

[4]郑阿奇.Java EE教程[M].北京:清华大学出版社,2012.

[5]赵彦.JavaEE框架技术进阶式教程[M].北京:清华大学出版社,2011.

[6]霍迎秋.基于SSH架构的农产品信息交换平台[J].实验室研究与探索,2013,32(5):6366.

[7]赵晓君,崔建涛,邓璐娟,等.基于SSH2和jQuery的大学生校园综合服务平台的设计与实现[J].郑州轻工业学院学报:自然科学版,2014,29(3):100104.

[8]马慧斌.JavaEE框架技術研究及其在OAO电子商务模式中的实现[D].西安:长安大学,2013.

[9]李雷孝,刘晓军,刘利民,等.基于SSH整合框架的科研项目管理系统的设计与实现[J].内蒙古农业大学学报,2012,33(1):210214.

[10]刘勇军,王电钢.Java EE项目应用开发[M].北京:电子工业出版社,2012.

责任编辑(责任编辑:何丽)endprint

猜你喜欢
S结构电商平台
基于电商平台的大学生互联网创业经济研究