【《基于微服务框架的网上商城设计》6100字(论文)】_第1页
【《基于微服务框架的网上商城设计》6100字(论文)】_第2页
【《基于微服务框架的网上商城设计》6100字(论文)】_第3页
【《基于微服务框架的网上商城设计》6100字(论文)】_第4页
【《基于微服务框架的网上商城设计》6100字(论文)】_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于微服务框架的网上商城设计摘要时代在进步,生活水平在提高,网购已经成了人们生活的一部分,与此同时,网购也隐藏着很多问题,商城商品数量过多,分类不合理,用户在商城中很容易找不到真正想要的商品,因此会浪费不少的时间。除此之外,用户的信息安全也一直是所有平台最关注的对象。针对此类问题,本文设计和实现了一种电子商城系统。用户在浏览商城时,可以使用搜索功能快速找到自己想要的东西。该商城主要有用户和管理员两个主体,在用户界面实现了登陆注册、购物车管理、订单管理等功能,在管理员界面实现了商品管理、用户管理等功能。本商城基于微服务框架搭建,在数据存储方面用到了MySql数据库并选用缓存数据库Redis作为中间件。系统将不同的功能实现分布到不同的微服务中,每个功能对应着每一个微服务,在后期维护等方面提供了很大的便利。关键词:微服务框架;电子商务;电子商城目录摘要 31.前言 71.1研究背景 72.相关技术 82.1SpringBoot框架 82.2MyBatis框架 82.3Redis数据库 83.需求分析 93.1需求概述 93.2功能需求分析 93.2.1访客 93.2.2用户 93.2.3管理员 104.系统设计 104.1功能设计 104.1.1用户 104.1.2管理员 114.2数据库设计 114.2.1实体-联系模型 114.2.2数据库表结构 125.系统实现 135.1实现流程 135.1.1注册功能 135.1.2登陆功能 145.1.3购物车功能 145.1.4订单管理模块 145.2实现逻辑 155.2.1注册功能 155.2.2登录功能 175.2.3购物车功能 185.2.4订单功能 185.2.5用户管理 196.系统测试 216.1功能测试 216.2测试结论 237.总结 23参考文献 241.前言1.1研究背景在互联网技术日益发达的今天,我们对于服务的质量要求也随之提升,这也使得我们在进行系统项目研发的同时需要不断提高其灵敏性以及可扩展性。过去的电商平台受当时的技术限制,只能使用较为落后的单体架构模式。在项目应用情景的日益丰富的现在,先前的技术已经无法满足日常的需求,因此我们迫切需要一个更加轻便可控的架构来完成我们的需求,一个微服务的电商平台也就应运而生了。一个东西好不好用是要看用户的评论的,所以本系统的设计,第一时间要考虑的就是用户的体验,在布局上,系统的布局要让人眼前一亮。在后端的布局中,当用户在使用过程中有问题时,我们要第一时间解决,因此,本系统采用微服务框架开发,每个微服务之间相互独立,在修改功能的时候,找到对应的微服务所实现的功能修改即可。1.2国内外研究现状1.2.1国外研究现状从B2C概念被提出的那一刻,世界电子商务仿佛迎来了一个新的春天。自亚马逊成立至今,美国都在这一领域处于领先地位。随着经济全球化发展,电子商务的火焰逐渐燃烧到了其他国家,不仅是欧美各国,以中国为核心的新市场开始迎头赶上,体现出了非常强大的生命力。目前世界各国在B2C领域发展的差距正在不断缩小,中国也逐渐成为世界最大的电子商务交易市场。1.2.2国内研究现状国内现存较多商城,如淘宝、京东等。其中HiShop电商系统是采用.Net+MySQL开发,也是国内最早的.Net电商平台之一。虽说现在HiShop有提供源码的产品,但相对于国内几个知名电商网站来说,其受系统框架影响,同时定价有些偏高,性价比一般。因此总结得出本系统采用微服务框架开发。1.3研究目的和意义本设计的主要目的是实现一个基于微服务框架的网上商城,通过对用户需求的分析以及国内现存的电商网站的分析,此商城应具备简单、清晰的页面布局并且在功能上实现了电商网站所具备的一些基本功能。系统在Windows10、JDK1.8、Nigix环境下开发部署。前端采用Bootstrap、Jquery等轻便易用且功能丰富的前端框架进行开发。后端架构方面采用SpringBoot和MyBatis框架。拟选用MySQL作为数据库系统,并选用缓存数据库Redis作为中间件,结合MySQL优化存储和查询。一个电商网站的好坏,代表了中国现今电子商务领域的技术的高低。随着消费水平的提升,同时带动着电子商务的不断发展。采用微服务框架开发,在一定程度上降低了后期维护的成本、时间,对于用户而言,一个更加良好的界面会让他们更有消费欲望,对于开发者而言,采用微服务框架开发不用在修改一个功能模块时对整个系统进行修改。2.相关技术2.1SpringBoot框架SpringBoot框架基于Spring框架设计,它们之间最大的区别就是前者不再要求程序员去配置一些XML文件,因此可以将更多的精力投入到代码的实现中。除此之外,SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置[1]。2.2MyBatis框架Mybatis是一个包含了接口层、数据处理层、基础支撑层的持久化框架[2],它跟SpringBoot框架一样,能通过配置文件或注解提高开发效率,使得软件工程师能够专注于对逻辑设计而不必纠结于其他繁琐而重复的工作。2.3Redis数据库Redis是一个开源的高性能Key-Value数据库,基于内存存储数据并且支持数据持久化[4]。不同于MySQL等关系型数据库,Redis是一款支持更多数据类型、查询速度更快的非关系型数据库,特别是处在大数据时代之中,MySQL等关系型数据库在处理海量数据的过程中逐渐显示出其不足,而与Redis等非关系型数据库相互配合能够在很大程度上能解决处理速度、类型支持的问题。3.需求分析3.1需求概述每一个系统的开发都是离不开需求分析这一环节的[2]。本系统是一个电商网站系统,对现存国内最大的几个网站进行分析以及对用户的需求询问可以得出本系统所需具备的功能大致有:访客可以随时注册,用户可以随时登陆。操作界面美观,操作简单设有搜索栏,用户可以直接搜索到想要的商品管理员可以管理用户3.2功能需求分析本节主要对进行了功能需求分析,本系统总共可分为三个角色:访客、用户、管理员,对于不同的角色,设置的所具功能也是不同的。3.2.1访客访客没有在商城进行注册,这类角色只能简单的浏览商城界面和了解部分的商品信息。其系统用例图如图3.1所示。图3.1访客用例图3.2.2用户用户已经在商城进行注册,在登陆后,这类角色可以访问到商城的任意一处,可以了解商品的全部内容。可以添加商品到购物车,并且可以在购物车里对商品数量进行修改。可以查看、取消订单等。其系统用例图如图3.2所示。图3.2用户用例图3.2.3管理员管理员是本商城系统的最高权限者,该角色可以查看所有的用户信息,并且可以不通过注册环节新添用户。由于本系统未设置商家这个角色,所以管理员具有上架、下架商品,管理订单等功能。其系统用例图如图3.3所示。图3.3管理员用例图4.系统设计4.1功能设计4.1.1用户用户功能结构设计如图4.1所示。图4.1用户功能结构图4.1.2管理员管理员功能结构设计如图4.2所示。图4.2管理员功能结构图4.2数据库设计4.2.1实体-联系模型该系统的实体关系图如图4.3所示。图4.3ER图4.2.2数据库表结构(1)用户表表4.1用户表名称数据类型主键/外键是否为空长度意义IdBigint主键否编号UsernameVarchar否32用户名PasswordVarchar否32密码PhoneVarchar否11手机号码CreatedDatetime否注册时间(2)订单表表4.2订单表名称数据类型主键/外键是否为空长度意义IdBigint主键否订单编号StatusInt否订单状态PriceVarchar否50订单总价create_timeDatetime否订单创建时间payment_timeDatetime否支付时间(3)商品表表4.3商品表名称数据类型主键/外键是否为空长度意义IdBigint主键否商品编号PriceBigint否价格TitleVarchar否256商品标题ImagesVarchar否1024商品图片SpecVarchar否12规格参数Create_timeDatatime否添加时间(4)品牌表表4.4品牌表名称数据类型主键/外键是否为空长度意义IdBigint主键否品牌编号NameVarchar否32品牌名称ImageVarchar128品牌logoLetterChar1品牌首字母5.系统实现系统实现部分主要通过实现流程和实现逻辑两个方面进行对模块的实现说明。由于篇幅有限,主要介绍四个模块,其中注册登录模块、购物车模块、订单管理模块属于用户的功能;用户管理模块属于管理员的功能。5.1实现流程5.1.1注册功能访客点击立即注册按钮,跳转到注册界面,在此界面输入合法的手机号、密码等信息后点击提交按钮即可完成注册。其实现流程图如图5.1所示。图5.1注册流程图5.1.2登陆功能用户点击立即登陆按钮,输入已注册的手机号、密码,然后点击提交按钮即可完成登陆。其实现流程图如图5.2所示。图5.2登陆流程图5.1.3购物车功能用户在商品详情页点击加入购物车按钮即可将商品加入购物车,并且在购物车界面可以对商品数量进行修改。其实现流程图如图5.3所示。图5.3购物车功能流程图5.1.4订单管理模块用户在购物车界面,点击提交订单按钮,系统会生成未支付的订单,然后用户可以点击我的订单按钮进行查看订单等操作。其具体实现流程图如图5.4所示。图5.4订单生成流程图5.2实现逻辑5.2.1注册功能用户进行注册时,前端会发送请求到UserController,然后根据URL地址调用register方法,传入user的信息进行注册,注册完成后返回ResponseEntity的实体类。在userservice的register的方法中,对user的密码进行加盐加密操作,调用usermapper向数据库新增用户信息。其具体实现类图如图5.5所示。图5.5注册功能实现类图注册界面效果图如图5.6所示。图5.6注册界面效果图5.2.2登录功能用户进行登录时,前端会发送请求到登录控制器类AuthController,然后根据URL地址找到authentication方法,在 authentication方法内部首先调用了AuthService的authentication方法,传入username与password,获得登陆的校验令牌,对字符串令牌进行判空,如果是空的则返回ResponseEntity的实体类,说明没有得到认证。如果令牌不是空的则将token写入cookie,并指定httpOnly为true,防止通过JS获取和修改。返回登陆成功的实体类给前端。其具体实现类图如图5.7所示。图5.7登陆功能实现类图登陆界面效果图如图5.8所示。图5.8登陆界面效果图5.2.3购物车功能用户添加商品到购物车时,前端会发送请求到LeyouCartController,然后根据URL地址调用cart方法,并将参数封装为Cart类,传递给cartService的addCart方法实现添加购物车具体逻辑。返回结果封装为ResponseEntity实体类。实现过程中会通过ThreadLocal获取用户登陆信息,并通过用户ID为key去redis中查询购物车记录,判断判断当前商品在不在购物车中,如果在则只更新数量,如果不再则调item-service微服务查询购物车的信息,并更新购物车,进行返回。其具体实现类图如图5.9所示。图5.9购物车功能实现类图购物车界面效果图如图5.10所示。图5.10购物车效果图5.2.4订单功能用户提交订单时,前端会发送请求到OrderController,然后根据URL地址调用createOrder方法,并将参数封装为Order类,传递给OrderService的createOrder方法实现创建订单具体逻辑。实现过程中会通过ThreadLocal获取用户登陆信息,并通过用户ID为key去redis中查询订单记录,返回订单列表。其具体实现类图如图5.11所示。图5.11订单功能实现类图5.2.5用户管理管理员进入用户管理模块,前端会发送请求到UserController,然后根据URL地址调用queryUser方法,通过用户ID为key去redis中查询用户信息,然后将信息返回给管理员。在删除用户时,UserController调用deleteUserById方法通过ID值在redis中删除用户信息,然后将结果返回。其具体实现类图如图5.12所示。图5.12用户管理实现类图用户管理界面效果图如图5.13所示。图5.13用户管理界面效果图6.系统测试系统完成之后,对系统进行功能测试是最重要的事情。测试的主要目的是为了发现系统潜在的问题以及对系统功能的可用性和完整性进行检测。本次测试考虑了多种可能发生的情况以及设置了多种数据,由于篇幅有限,测试内容为节选内容。6.1功能测试(1)注册功能测试注册时需要访客输入手机号和密码,测试结果如表6.1所示。表6.1注册功能测试表测试对象访客测试目的测试注册功能是否可用测试数据格式正确且未注册的手机号和格式正确的密码格式正确且已注册的手机号和格式正确的密码格式不正确且未注册的手机号和格式正确的密码格式正确且未注册的手机号和格式不正确的密码测试流程访客点击立即注册按钮,输入测试数据访客点击立即注册按钮,输入测试数据访客点击立即注册按钮,输入测试数据访客点击立即注册按钮,输入测试数据预期结果访客可以正常注册并跳转到登陆界面访客不能注册并且系统提示手机号已存在请登录访客不能注册并且系统提示手机号格式错误访客不能注册且系统提示密码格式错误实际结果访客可以正常注册并跳转到登陆界面访客不能注册并且系统提示手机号已存在请登录访客不能注册并且系统提示手机号格式错误访客不能注册且系统提示密码格式错误结论在输入正确的数据时,注册功能可以正常使用(2)登陆功能测试登陆时需要用户输入用户名和密码,测试结果如表6.2所示。表6.2登陆功能测试表测试对象用户测试目的测试登陆功能是否可用测试数据正确的用户名和正确的密码错误的用户名和正确的密码正确的用户名和错误的密码未注册的用户名和密码测试流程用户在登陆界面输入测试数据,点击立即登录用户在登陆界面输入测试数据,点击立即登录用户在登陆界面输入测试数据,点击立即登录用户在登陆界面输入测试数据,点击立即登录预期结果用户可以正常登陆并跳转到首页用户不能登陆,提示用户名错误用户不能登录并提示密码错误用户不能登陆并提示该用户不存在实际结果用户可以正常登陆并跳转到首页用户不能登陆,提示用户名错误用户不能登录并提示密码错误用户不能登陆并提示该用户不存在结论在输入正确的数据时,登陆功能可以正常使用(3)购物车功能测试测试结果如表6.3所示。表6.3购物车功能测试表测试对象用户测试目的测试购物车功能是否可用测试流程用户在商品详情页点击加入购物车按钮用户在购物车内增加商品数量用户在购物车内减少商品数量用户清空购物车预期结果商品正常加入到购物车购物车内商品数量正常增加购物车内商品数量正常减少购物车内商品被清空实际结果商品正常加入到购物车购物车内商品数量正常增加购物车内商品数量正常减少购物车内商品被清空结论用户可以正常使用购物车功能(4)用户管理功能测试测试结果如表6.4所示。表6.4用户管理功能测试表测试对象管理员测试目的测试用户管理功能是否可用测试流程管理员在管理界面增加用户信息管理员在管理界面删除用户信息管理员在管理界面修改用户登陆密码管理员在管理界面修改用户名预期结果成功添加用户,用户可以正常登陆成功删除用户,用户不能登陆系统了成功修改密码,用户使用新密码才能登陆成功修改用户名,用户使用新用户名才能登陆实际结果成功添加用户,用户可以正常登陆成功删除用户,用户不能登陆系统了成功修改密码,用户使用新密码才能登陆成功修改用户名,用户使用新用户名才能登陆结论管理员可以正常使用用户管理功能6.2测试结论在测试环节,主要对登陆注册功能、购物车功能和用户管理功能进行了测试,测试过程中设置了多种测试数据、测试流程和预期结果。经过对多次功能测试结果进行分析,发现最终测试与预期结果大体一致,可确认电子商城系统功能基本实现,基本满足了用户使用电子商城系统进行购物时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论