DesignandImplementationofHaitianOnlineShoppingMallBasedontheIntegrationofThreeFrameworksofSSM
LiangfengZhang,YiminLin
CunjinCollege,GuangdongOceanUniversity,ZhanjiangGuangdong
Received:Dec.6th,2017;accepted:Dec.22nd,2017;published:Dec.29th,2017
ABSTRACT
Keywords:Spring,SpringMVC,MyBatis,OnlineShoppingMall
基于SSM三大框架整合的海田在线商城的设计与实现
张良峰,林益民
广东海洋大学寸金学院,广东湛江
收稿日期:2017年12月6日;录用日期:2017年12月22日;发布日期:2017年12月29日
摘要
伴随着区域经济一体化格局的逐步深化,区域与区域之间的经济交流更为密切,物流产业的发展直接催生不同地区之间一系列的商品交易,而湛江海田物流产业园区建设尚且处于一个逐步发展的传统阶段。我们应优化物流产业园的产业发展环境,引入现代信息技术实现资源与功能的集聚效应,实现海田物流产业园的转型升级,使之搭上“互联网+”的快车,让湛江海田物流产业园更加“智慧化”和“智能化”。本文研究使用面向对象编程的思想,通过UML建模结合功能思维导图,通过整合SSM三大框架,前后端分离开发,使用Spring、SpringMVC、MyBatis、Dubbo、SolrCloud、Redis、JSON等开发技术,完成了湛江海田在线商城的设计与实现。
关键词:Spring,SpringMVC,MyBatis,在线商城
ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).
1.绪论
1.1.课题的研究背景
湛江海田物流产业园是湛江市深入贯彻对赤坎的产业定位和实施“三产兴区”发展战略的创新举措,也是赤坎区发展第三产业和经济发展扩容提质的主要载体。
湛江海田物流产业园位于赤坎区东北部的海田片区,紧靠城市主干道,海、陆、空交通运输齐全、便利。目前,产业园内的商贸物流已具有相当规模,成为粤西最大的商贸物流聚集区,形成了建材、汽车、水产三大支柱产业等18个专业市场,拥有3700家各类大型商户,2015整个湛江海田物流产业园的年产值达110亿元人民币。经过充分的市场调研及与湛江市政府和海田物流产业园管委会的座谈,我们发现在当前“互联网+”概念的冲击下,湛江海田物流产业园的各类经营仍处于非常传统的商业运营,整个产业园综合管理效能不高,亟待产业的转型升级,尤其是要引入现代的互联网思维,实现线下向线上转型升级。
1.2.研究目的及意义
伴随着区域经济一体化格局的逐步深化,区域与区域之间的经济交流更为密切,物流产业的发展直接催生不同地区之间一系列的商品交易,而我国当前很多的物流产业园区建设尚且处于一个逐步发展的传统阶段。物流业的布局及物流成本的高低,很大程度上制约着现代商贸企业的发展。因此,我们应优化物流产业园的产业发展环境,引入现代信息技术实现资源与功能的集聚效应,实现传统物流业的转型升级,使之搭上“互联网+”的快车,让物流发展更加“智慧化”和“智能化”[1]。
本文的研究内容,使用面向对象编程的思想,通过UML建模[2]结合功能思维导图,基于SSM三大框架的整合思路[3]实现海田在线商城的设计与实现。
2.需求分析
软件需求分析是系统必须完成的事,以及必须具备的品质,具体来说,需求分析包括功能性需求、非功能性需求和设计约束三个方面。软件需求分析的准确性对于海田在线商城实现的质量有着决定性的作用,也是开发团队的指南针。本文的需求分析采用的是统一建模语言(UML)中的用例图来展示用户的需求,描述用户和系统如何协作的功能和非功能性需求。用思维导图来描述海田在线商城核心子系统的功能需求。
2.1.用户需求
用户的难题就是我们的课题。海田在线商城的实现旨在创建一个海田物流产业园区线上服务闭环,形成一个安全可靠、方便易用的多点互通的电子商务交易平台。实现大众客户、企业客户、会员可以在商城上搜索商品,浏览商品,交易商品等;供应商、厂商、零售商、品牌直营店可以在上平台发布商品、管理、售卖或者交易商品等;湛江海田物流产业园管委会、系统管理员等都能在平台上操作、管理的一个线上产业园平台,同时保证系统正常运行。
2.1.1.用户需求分析
在项目的初始阶段,举办了项目成员对于海田在线商城用户需求的讨论会,根据目前整个互联网的发展趋向,初步确定了以下几个方面。
1、功能齐全的商品展现平台和仓库管理系统;
2、灵活的订单处理机制;
3、支持多选的线上支付的功能及可选快递服务(特殊商品同城配送服务);
5、基于平台各类数据的分析为普通用户提供商铺推荐;
6、完善的管理功能,按照不同性质的用户进行权限分配;
7、开放的平台投资窗口。
2.1.2.用例图
用例定义了参与者与海田在线商城平台之间的关系,用户需求由系统来完成实现,前端系统则主要针对大众用户和会员用户,后台系统则对系统管理员和商城后台操作员开放。
2.2.功能需求
2.2.1.功能架构图
思维导图是一种将思维形象化的方法。思维导图在海田在线商城的开发中能引导整个项目的开发不偏离方向。
Figure1.Usecasediagramofforegroundsystem
Figure2.Usecasediagramofbackgroundsystem
Figure3.FunctionalarchitecturediagramofHaitianOnlinestore
Figure4.Themindmapofstoresystem
Figure5.Themindmapofstoresetting
3.海田在线商城的设计与实现
3.1.开发技术
3.1.1.Dubbo分布式解决多用户高并发问题
海田在线商城的开发过程中存在这种情况,服务提供方(Provider)发布服务以后,服务消费方(Consumer)发出一次调用请求,恰好这次由于网络问题调用失败,虽然可以采用重试这种策略,但是存在发布服务所在节点出现故障无法提供服务。所以我们搭建Dubbo集群解决了多用户同时访问网站某一个服务容易发生冲突的问题,在出现节点故障无法提供服务的时候,通过调用其它服务节点来解决,这就提高了服务的可用性。
3.1.2.Solr集群实现商品快速搜索
Solr是基于Lucene的全文搜索服务器,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言同时实现了可配置、可扩展并且优化了查询性能。SolrCloud是Solr提供的分布式搜索方案,原理是由多台Solr服务器集中部署,共同来完成搜索和所索引库的任务。使用Solr集群的方式能更好的解决海田在线商城的多用户高并发、海量数据的搜索需求。
搭建Solr集群主要用途是降低单机的处理压力,将海田商城的搜索服务项目切换到这个集群,商城
Figure6.Themindmapofcommoditysystem
Figure7.Themindmapofordersystem
Figure8.ThemindmapofWMS
Figure9.FunctionalarchitecturediagramofHaitianOnlinestore
Figure10.DubboArchitecture1
3.1.3.Redis提升数据访问速度
Redis即为RemoteDictionaryServer(远程数据服务)的缩写是一个开源的,支持网络、可基于内存亦可持久化的日志型、Key-Value的Nosql数据库,并提供java等多种语言的API。
3.2.SSM框架的研究
SSM框架整合即为Spring、SpringMVC、MyBatis三个开源框架的整合。商城主要是采用Spring(4.2.4.RELEASE),MyBatis(3.2.8)进行SSM整合。
3.2.1.Spring框架
Spring是一个开放源代码、轻量级的Java开发框架。通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。在这里举个例子来说明IoC的核心思想,支付宝在整个淘宝体系里就是庞大的IoC容器,交易双方之外的第三方,提供可靠性可依赖可灵活变更交易方的资源管理中心。我们在设计商城的时候:先设计商家,然后根据商家设计商品,接着根据商品设计买家,最后根据买家设计仓储。这里就出现了一个“依赖”关系:商品依赖商家,买家依赖商品,商品依赖库存。商品、买家、卖家、仓储之间的资源不由使用资源的双方管理,而由不使用资源的第三方即Spring的IoC容器来管理,这可以带来很多好处。第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度。这样以后我们在对商品、卖家、买家、仓储的服务上增加或者增强功能模块的时候就不必要在商品、买家、卖家、仓储每个服务去修改,提高了后期维护的效率。
Spring还有一个很重要的特性,就是可以方便集成各种优秀的框架。海田在线商城主要集成了Dubbo服务框架、Redis缓存服务、Solr搜索服务、ActiveMQ消息队列服务。Spring集成海田商城要用到的第三方框架后,就可以通过简单的配置调用第三方框架提供的API,实现商城的业务服务。具体整合及特性如下:
这样就可以把商品服务注册到服务中心,当要使用这些商品服务的web程序,如商城主页,就可以透明化的远程方法调用,就像调用本地方法一样调用远程方法。
2)在商城的系统服务层整合了用来做缓存的Redis缓存库和用来提供搜索服务的Solr集群,使得整个系统数据库的负载大大降低,提高运行速度。数据库则整合了MyBatis,下面详述。
3)Spring系统中我们还内嵌了ActiveMQ,ActiveMQ是强劲的消息总线,不论是在海田商城分布式开发过程中还是在运维上都扮演着重要的角色,ActiveMQ的特点主要是,可以建立网络通信的通道,进行数据的可靠传送。在传输中保证了数据传输的完整性,而且能够跨平台传输。
3.2.2.SpringMVC
SpringMVC属于Spring框架的衍生模块,SpringMVC通过DispatcherServlet这个前端控制器(也叫中央调度器,笔者认为中央调度器更能体现其作用),来调用MVC的三大件:Controller、Model、View。这样就保证MVC的每一个组件只与DispatcherServlet耦合,而彼此之间独立运行,大大降低了程序的耦合性。使得海天商城的设计复合程序的开发之道,高内聚底耦合的设计原则。
3.2.3.MyBatis的选用
MyBatis是集合多种操作型关系数据库的概念和方法,它是一个强大的数据访问工具和解决方法[5]。对比Hibernate,MyBatis是一个半自动框架,Hibernate则是一个全自动框架,无法直接维护SQL。MyBatis在书写SQL的灵活性很好,Hibernate就不行,会比较麻烦。本文使用MyBatis作为海田在线商城这种多变性的项目,Hibernate比较适合稳定的项目。而且MyBatis速度相对于Hibernate的速度要快些。
3.3.功能页面结构实现
3.3.1.前端系统架的搭建
3.3.2.前端页面的实现
Figure11.Functionalarchitecturediagramofforegroundsystem
Figure12.PC-sidepagestructure
Figure13.SmartmobilephonePageStructure
Table1.Datasheetlistsummary
Figure14.Datatablefielddesign
3.4.数据库设计
4.结束语
本文对于海田在线商城的设计进行了初步实现,采用Spring、SpringMVC和MyBatis框架为基础,Spring作为整个系统的控制中心,这样可以使得系统在整合上更符合程序的设计之道,降低了整个海田商城系统的复杂度。Dubbo、Redis、SolrCloud技术的引入能够解决在线商城的海量数据、多用户高并发的问题,在移动互联网不断更新的时代里能够更好的兼容和内嵌新技术框架。一个好的平台需要不断的完善和改进,其中包括了问题的解决,例如本项目在开发中解决js跨域访问的问题应使用jsonp、跨站请求伪造(CSRF攻击)的解决方法为设置验证码验证,增加Token验证等[6]。这种基于SSM三大框架整合开发企业型的商城还是很受用的,分布式开发能够灵活的分布和部署移动端或者PC的服务器。对于商城的后续完善还有待进一步研究。
基金项目
2017年“攀登计划”广东大学生科技创新培育专项资金资助(项目编号:pdjh2017b0983)。