Spring Boot的在线商城系统设计分析

Spring Boot的在线商城系统设计分析

摘要:针对日益增长的在线购物需求,设计一款基于SpringBoot的在线商城系统,利用信息技术为商家及顾客的商品交易提供广阔的网络交易平台。系统基于SpringBoot技术进行开发,设计用户信息管理、商品信息管理、购物车管理、订单信息管理、地址信息管理和评论信息管理等功能。商家可以使用系统进行商品的销售,顾客可以使用系统进行商品的选购,系统管理员可以使用系统进行用户信息的维护。能够有效提高商品交易的便捷度,减少商品流通的中间环节,并节约交易成本。同时,通过SpringSecurity进行安全访问控制,防止越权操作,确保系统的安全性。

关键词:SpringBoot;SpringSecurity;在线商城

网上商城的兴起和发展为人们提供了方便快捷的商品选购服务,与传统的线下交易方式相比,在线交易具有诸多优势。一方面是交易活动不受时间和空间的限制[1],客户可以通过查看商品详情及评价,快速了解商品的各种信息,享受随时随地线上下单,线下收货服务。另一方面为商家和客户提供了广阔的市场交易平台[2-3],提高了商品流通的效率,降低了商品交易的成本[4-6]。在线商城系统是网上交易平台能够正常运转的基础和支撑,通过灵活方便的交易方式、简单明了的操作界面、完善安全的后台管理来满足消费者多样化的购物需求,提升商品交易管理效率[7]。因此研究并设计一款架构合理、功能完善的在线商城系统具有较大的社会价值和意义。本文设计了一个基于SpringBoot的在线商城系统,商家可以使用系统进行商品信息以及订单信息的管理,顾客可以使用系统方便快捷地进行商品的选购,并使用购物车收藏自己喜欢的商品。系统管理员可以使用系统对商家及顾客等用户信息进行维护。

1需求分析

1.1可行性分析

1.1.1社会可行性

随着互联网技术的发展,特别是移动互联网技术的发展,在线购物已经日益成为人们主流的购物方式。经过将近三十年的发展,我国在线交易份额已经占据较大规模,在线购物行业已进入稳定、健康、可持续的发展行列。而生活节奏的加快使得人们迫切地希望及时通过碎片化的时间也能购买到自己所称心如意的商品,因此相比于传统的购物方式,在线购物方式更受人们(特别是年轻顾客)的青睐。相比于传统购物方式的耗时耗力,在线购物方式十分方便快捷,用户只需要打开手机或电脑,即可在线了解商品的相关特性,并通过评论信息获取其他用户的购买体验。在线购物不受时间地点的限制,用户可以随时随地享受在线下单、线下收货的服务。其次,在线购物方式为用户商家提供了广阔的交易平台,顾客可以浏览来自全国甚至全世界琳琅满目的商品,大大增加了购物的可选择范围;商家也可以通过网络增加规模庞大的客源。最后,在线购物打破了商家和顾客之间的壁垒,减少了商品流通过程的中间环节,节约了交易成本,实现了顾客和商家的双赢。在线商品交易具有广阔的前景,因此研究并设计一款架构合理、功能完善的在线商城系统具有较大的社会价值和意义。

1.1.2技术可行性

本系统采用B/S架构,用户在使用本系统时无须安装客户端软件,只需要通过浏览器即可进行访问。系统运用MVC开发模式,实现前后端分离。其中后端以Java作为开发语言,由于Java具有高度的可移植性,因此系统可以部署在任意操作系统的服务器上。以SpringBoot+MyBatis作为开发框架,采用MySQL数据库技术来进行数据的存储,并使用Maven来进行系统资源的管理和项目的构建,采用GIT进行代码版本控制;前端采用Bootstrap+jQuery作为开发框架,并使用AJAX技术来和后端进行数据的交互。以上技术都是当前成熟且主流的技术,因此采用上述技术进行设计开发在线商城系统是可行的。

1.2功能需求分析

系统总体包含6个部分的功能,分别为用户信息管理、商品信息管理、购物车管理、订单信息管理、地址信息管理和评论信息管理。其中管理员具有用户信息管理的功能,包含了对顾客及商家的管理;商家具有商品信息管理、订单信息管理、评论信息管理等功能;顾客具有商品信息管理、购物车管理、订单信息管理、地址信息管理、评论信息管理等功能。

1.3性能需求

1.3.1安全需求

为了保障系统安全性,特定的操作必须登录之后才能进行。顾客、商家和管理员在登录之前只能浏览商品信息和查看评论信息,不能进行其他操作。不同角色的用户登录系统后,会进入到不同的页面,执行不同的操作。为了保证系统运行的安全性,防止越权访问和恶意操作,需要建立基于角色的访问控制(RBAC)策略。根据上文1.2所示的功能需求为管理员、商家和顾客三个不同的角色赋予不同的权限。当用户登录系统后,针对其发起的每一个操作,系统首先会判断当前用户所对应的角色是否具有指定的操作权限,若该用户具有对应的操作权限,则允许当前操作执行;否则禁止当前用户执行该操作,并强制当前用户退出系统。

1.3.2实时性

要求系统保证一定的响应速度,不至于让用户在操作时等待过长时间,以便让用户具有良好的购物体验。如在进行商品信息搜索、查看商品详情及评论信息、在购物车中添加商品、编辑地址信息以及创建订单的响应时间不能超过3s,支付的响应时间不可以超过7s。

1.3.3可扩展性

随着时间的推移,系统往往会伴随着业务需求的变动。而如果对系统进行重新设计开发则容易造成人力物力资源的浪费,因此往往会在原系统的基础上进行升级。为了保证能够顺利完成更新升级,系统必须要具有良好的可扩展性。首先系统在设计时需要采用MVC模式,实现系统的业务逻辑层、数据层和表现层相分离,使得当某一层级发生改变时,其他层级不发生变动或者变动较小;其次遵循“高内聚、低耦合”的思路,对系统功能进行模块化设计,保持各个模块之间的相对独立性,当一个模块发生异常时,其他模块仍然可以正常使用,并且在维护时还可以快速定位到异常发生的位置。最后在开发时必须严格按照标准化要求进行文档和代码的编写,充分考虑将来系统扩展的需求,预留好相应的接口和方法。

2系统功能设计与实现

2.1系统功能设计

2.1.1用户信息管理模块设计

系统的用户一共包含三种类型,分别是管理员、商家和顾客,通过给用户设置不同的角色编码来进行角色的区分。管理员账户由系统拥有者在数据库中直接创建,并赋予其角色编码ADMIN,使其具有管理员角色,管理员账户可以有多个;顾客需要通过注册才能成为系统用户,注册完成后,系统为其赋予角色编码CUSTOMER;商家由管理员添加后成为系统用户,添加成功后,系统为其赋予角色编码MERCHENT。管理员登录系统后可进行顾客和商家信息的维护。顾客信息维护包括查询顾客信息和冻结/解冻顾客信息等功能。商家信息维护则包括添加商家信息、修改商家信息、查询商家信息、删除商家信息、冻结/解冻商家信息等功能。为了更好地保障系统用户权益,对于存在违规操作的商家或顾客,管理员可以对其账户进行冻结。用户被冻结后,将无法使用系统,直至解冻后方可继续使用系统。

2.1.2商品信息管理模块设计

商家登录系统后,可以对商品信息进行维护,包括添加商品信息、查询商品信息、修改商品信息、删除商品信息、商品上架、商品下架等功能。顾客具有查看商品信息的功能,包括搜索商品信息、查看商品详情。商家可以添加多种商品信息以便进行发售,商家编辑好商品信息后,可以将商品上架。上架后,该商品即可被顾客搜索并购买。对于已经不再售卖的商品,商家可以选择将其下架,下架后的商品将不会被顾客搜索到,且不能被顾客购买。

2.1.3购物车管理模块设计

为了方便顾客选购商品,系统允许顾客将心仪的商品收藏到购物车中进行暂存,购物车中包含了商品及其收藏数量信息,收藏的数量不能超过该商品的库存量。顾客只有在登录成功的情况下,才可以对购物车进行管理,包括添加商品到购物车、修改购物车中的商品数量、查询购物车中的商品信息、将商品从购物车中删除等操作。如果顾客首次将某商品添加到购物车,则直接在购物车中添加该商品,并设置数量默认为1。如果顾客再次添加该商品,则直接在购物车中,将该商品数量加1。顾客还可以选中购物中的若干商品直接下单。

2.1.4订单信息管理模块设计

顾客和商家都具有订单管理的相关功能。顾客登录系统后,具有创建订单、查询订单信息、删除订单信息等功能。订单的创建有两种方式,第一种是顾客通过选择购物车中的商品信息来创建订单,另一种方式是顾客通过直接在商品列表中选择某个商品创建订单。此外,顾客在创建订单时,还需要选择收货地址,订单创建后,订单中会保存收货地址的副本,确保即使后续用户地址发生修改时,也不会对已提交的订单造成影响。每一个订单可以包含多个订单项,每一个订单项对应一个商品及其数量,订单项中还会保存商品的详细信息作为快照,快照将作为商家和顾客发生纠纷时的重要评判依据,即使后续商家对商品进行修改,也不会对已提交的订单造成影响。商家登录系统后,具有查询订单信息及发货的功能。顾客提交完订单后,商家即可在系统中看到对应的订单信息,待客户支付完成后,商家即可进行发货。

2.1.5地址信息管理模块设计

地址信息为顾客订单的收货地址,为了让订单顺利地派送到指定位置,顾客还需进行地址信息的维护,顾客登录系统后可以进行新增地址信息、修改地址信息、查询地址信息、删除地址信息等操作。地址信息中包含了收件人的详细地址、收件人姓名以及电话等信息。

2.1.6评论信息管理

评论信息可以让顾客更方便快捷地了解其他用户购买该商品后的用户体验,以便给其他顾客提供参考,使人们对商品的了解更加全方位、立体。顾客和商家都可以查看商品的所有评论信息。此外,顾客还具有创建评论的功能,顾客购买商品之后,可以对商品进行评论。

2.2安全性能设计

2.2.1用户登录控制

用户在未登录的情况下只能浏览商品和评论信息,无权执行任何其他操作。当用户要完成其他操作时,系统将强制跳转到登录页面,提示用户输入账户密码进行登录。同时为了防止密码泄露,系统还采用SHA-256哈希算法对数据库中的密码进行加密。

2.2.2用户操作权限控制

为了提高系统运行的安全性,需要对用户的操作进行权限控制。系统采用RBAC访问控制策略,并使用SpringSecurity进行安全访问控制,防止越权操作。如前2.1所述,本系统中,数据库中用户表结构中每个用户都有一个角色编码,用于标识用户的角色信息。同时数据库中还存在一个角色权限关联表,包含了角色与操作权限的对应关系,当用户登录成功后,系统将根据用户角色,从数据库的角色权限关联表中读取用户的所有操作权限信息。当用户发出执行某项操作的请求时,系统将首先根据用户的操作内容,获取执行该操作所需要的权限,并判断用户已有的权限集合中是否包含该操作权限,若包含对应的操作权限,则允许用户进行当前操作,反之则禁止用户执行当前操作,并强制当前用户退出系统。

2.3数据库设计

本系统采用开源的MySQL数据库系统进行数据存储,包含的数据表有收货地址信息表、省市区信息表、评论信息表、商品信息表、订单信息表、订单详情信息表、购物车信息表、用户信息表、权限信息表等。各个数据表结构设计为:收货地址信息表(地址id、所在省份id、所在市id、所在区/县id、详细地址、邮编、收件人姓名、收件电话、所属用户id、删除标志位、创建人id、创建时间、修改人id、修改时间);省市区信息表(区域id、区域编码、区域名称、父区域id、删除标志位、创建人id、创建时间、修改人id、修改时间);评论信息表(评论id、评论人id、商品id、所属订单id、评论类型、详细评论信息、删除标志位、创建人id、创建时间、修改人id、修改时间);商品信息表(商品id、商品名称、商品类型、商品价格、商品库存、图片存储路径、商品描述信息、商品状态、删除标志位、创建人id、创建时间、修改人id、修改时间);订单信息表(订单id、订单编号、客户id、收货地址详情、订单总金额、删除标志位、创建人id、创建时间、修改人id、修改时间);订单详情信息表(订单详情id、订单id、商品id、购买数量、商品名称、商品类型、商品价格、商品图片、商品描述、订单详情状态、删除标志位、创建人id、创建时间、修改人id、修改时间);购物车信息表(购物车id、用户id、商品型号id、商品id、商品数量、删除标志位、创建人id、创建时间、修改人id、修改时间);用户信息表(用户id、用户名、密码、昵称、性别、联系电话、邮箱、角色编码、用户状态、删除标志位、创建人id、创建时间、修改人id、修改时间);权限信息表(角色编码、权限编码)。

3结束语

本文设计了一款在线商城系统,能够有效实现商家及顾客进行在线商品交易的需要,并能有效提高商品交易的便捷度,减少商品流通环节,并节约交易成本。同时通过SpringSecurity进行安全访问控制,防止越权操作,确保系统的安全性。

作者:杨晟 罗奇 单位:湖南信息职业技术学院