springboot+vue+redis前后端分离 爱家商城项目 - 宋马

springboot+vue+redis前后端分离 爱家商城项目

家具商城系统的设计与实现

摘 要

随着生活和工作方面的压力逐渐增加, 人们对网上购物的依赖和需求也就变得越来越大。家具商城网站是一个能使得繁忙的或者不喜欢出门的人,足不出户而又很方便地购得自己喜爱的美妆、护肤品等日用品,这样既满足了自己的心灵需要,也不会影响到工作或者浪费了休息的时间。 如今现代信息技术的迅速发展和 Internet 普遍运用, 家具商品网上商城对于商家来说,也是一个能很有效的提高他们的销售额的销售方式。本文所述的家具商城是采用 Java 和 mysql实现的。首先从系统的概述、意义入手,分析了它在人们生活中的重要地位和对商家的影响;其次详细阐述

系统设计与实现的方法步骤。包括系统需求分析、总体设计和功能模块设计等,最后介绍了本系统数据库的使用的技术和开发方法。

关键词 : html、spring、 springboot、家具商城网站

With the increasing pressure of life and work, people's reliance on and demand for online shopping is becoming greater and greater.Women's e-commerce website is a busy or do not like to go out of the house, and it is very convenient to buy their favorite makeup, skin care products and other daily necessities, so as to meet their spiritual needs, will not affect the work or waste of time to rest.Nowadays, with the rapid development of modern information technology and the widespread use of the Internet, pet online mall is also a very effective way for businesses to increase their sales.The ladies' e-commerce mall described in this paper is realized by Java and Mysql.Firstly, from the overview and significance of the system, it analyzes its important position in people's life and its influence on businesses.Secondly elaborate

Methods and steps of system design and implementation.Including system demand analysis, overall design and functional module design, and so on. Finally, this paper introduces the technology and development method of the system database.

一、 绪论

1.1 系统概述

随着信息技术的不断发展,我们现在已经步入了信息化的时代了,而信息时代的代表便是网络技术的日渐成熟,而现在网络已经和我们的生活紧密的联系起来了,我们不敢想象没有网络我们的生活会像怎么样,也许就像食物中没有调料现在的生活离开了网络会变得索然无味。通过网络我们可以足不出户的做许多事情,例如工作、娱乐、学习,购物、交友和购物等等许多我们数之不尽的事情,而就是因为网络我们的生活变得多姿多彩,或许有时甚至帮我们省下不少的时间和给予了我们更多的机遇。家具商城网站对我们来说就有这些意义。家具商城网站商城主要是一些企业为了不流失因为某种原因而没有到商店店里选购商品的家具商品客人而设计的一个通过 Internet 就能进行方便购物的系统,家具商城网站的诞生为商家们提供了很多的机遇。另外一个原因是现在网上购物对家具商品人们生活和工作中所产生的压力是很有用的,所以现在网购的需求量在不断的提升,然而有很大一部分人还是没有时间去选购自己喜欢的商品, 所以家具商城网站应运而生。在家具商城网站诞生之后,用户可以在空余的时间通过互联网来查看大量品种的家具商品信息,从而很方便地购买到自己心仪的衣服、护肤品、包包之类的、在另外一方面就是提高了商家的销售额。总的来说,家具商城网站既满足了很多人的需要,也不会影响到工作或者浪费了休息的时间,它是一个很有意义的系统。

1.2 系统开发意义

购物在人们的生活起到了很重要的作用,对一部分人来说,或许家具商品是一个不可替代的角色。所以人们对家具商品的需求也逐渐增大了。然而对家具商品有着很大需要的人,他们或许上班时间比较紧,或许不是很方便到家具商品店里面去选购自己心仪的家具商品,所以传统的营销方式满足不了他们,那么就需要新的销售方式的产生。很多商家就是看到了这一点,所以他们纷纷建立了自己的一个家具商品网上商城, 因为在现今 Internet上商品的零售额已经是迅速地增长了。原因在于通过 Internet,即使是小公司也可以接触到世界上任何地方的客户; 在 Internet上浏览的人会发现在线订购商品比其他任何方法都方便得多;更重要的是,一旦电子商务站点启动并运行起来,获取订单处理的成本与设置实体店铺的成本相比,实际上会几乎接近于零。所以家具商品网上商城的诞生不仅满足了部分客户的需要,同时也使得商家寻找到了新的更好的销售方式。本系统实现了一般的电子商务所具备的功能,如商品浏览,购物车,后台管理等等,利用这些功能可以对家具商品和家具商城销售信息进行较好的管理,同时也会使得客人很方便的就能购得自己想要的家具商品或者货品。电子商务将会使人类社会经济一体化,不断地推动着经济的发展,从而也不断地推动人类社会的发展,使我们的生活水平提升到另外一个高层次上。

1.3 研究的内容

该家具商城管理主要研究内容是实现系家具商城的管理、商品类型的管理、下级类型的管理、家具商品详情管理、订单管理、流程管理、购物车管理、首页轮播图配置管理、推荐家具商品信息、热销家具商品信息、关键字查询搜索商品信息、以及管理员的数据的维护的上传管理以及订单信息的状态和用户登录、注册以及修改密码等功能。

二、相关技术介绍分析

2.1 spring

Spring 框架是Java技术平台上的一种常见开源应用框架,提具有控制反转IOC的容器。尽管长时间以来Spring框架自身对编程没有限制,但是其在Java应用中的频繁使用让它很受青睐,所有后来让它作为EJB(EnterpriseJavaBeans)模型信息补充,java Spring框架为开发提供了一系列技术解决方案,比如:利用控制反转IOC的特性,通过实现依赖注入来实现管理整个对象生命周期容器化,利用java面向切面编程技术进行声明式事务管理,整合各种持久化技术管理数据的访问,提供了很多优秀的Web框架方便开发、JAVA Spring框架具有控制反转IOC特性,IOC主要在方便项目维护和测试时期,它提供了一种通过Java反射机制对Java对象进行统一配置与各种管理的方法。JAVA Spring框架通过容器管理对象的整个生命周期,spring容器通过扫描XML配置文件来配置对象,java开发者通过依赖注入查来获得对象或查找对象。java Spring框架具有面向切面编程(AOP)框架的功能。SpringAOP框架基于经典的java设计模式–代理模式,可以同时运行时可配置;java AOP框架主要技术针对模块之间得交叉关注点进行模块化管理。Spring框架的AOP功能仅提供基本的AOP特性功能,虽然无法与AspectJ框架相比较,但是通过与AspectJ框架的集成,也可以满足基本功能需求。Spring框架下的事务管理、远程访问等功能均可以通过使用Spring-AOP技术来实现。Spring事务管理为Java平台开发者带来了一种抽象的机制,使本地事物和全局事务、嵌套事务能够与保存点在一起工作,而且可以在Java平台的任何环境中工作、Spring集成 了多种事务,系统可以通过事务、XML以及Java注解进行事务配置,而且事务框架集成了消息传递和功能和缓存的功能。Spring的数据访问解决了开发者在应用程序中使用数据库时遇见的常见困难。它不仅对Java:JDBC、iBATS、MyBATIs框架、Hibernate框架、Java数据对象(JDO)、和ApacheCayne等流行的数据访问框架中提供技术支持。并且可以与Spring事务管理一起来使用,提供数据访问抽象。java Spring框架最开始是没有打算构建一个自己的WebMVC的框架,但是开发人员在开发设计过程中认为现有的Struts框架的表现层和请求处理层之间、请求处理层和模型之间的分离还不够彻底,所有创建了经典的SpringMVC框架。

2.2 Spring MVC

Spring MVC框架是一个经典的MVC流程框架,通过实现ModelView以及Controller处理器来很好地将数据和业务以及展现层进行完全分离。从这样的一个角度来说的话,Spring MVC、Struts以及Struts2非常的类似。SpringMVC总体设计是围绕DispatcherServlet前端控制器来展开的,DispatcherServlet负责将前端请求发送到特定的handler映射。通过配置的handler mappings—view resolution—locale以及theme resolution来处理收到的请求并且转到对应的视图处理器。Spring MVC请求业务处理的整体流程如下展示:

2.3 mybatis

mybatis框架是对底层jdbc访问数据库的封装,它让对数据库底层访问的操作透明话。mybatis的具体操作是围绕一个sql SessionFactory实例来展开进行的。mybatis框架通过各种配置文件关联到具体对象实体类的映射Mapper文件,Mapper文件中配置了每个对象对数据库需要进行的sql映射。在和数据库交互时候,通过sqlSessionFactory实例拿到一个sqlSession对象,再执行sql命令。访问数据库。

2.4 JSP技术

JSP(全称是JavaServer-Pages)是由Sun 公司主导并且创建的一种动态拼网页的java技术。JSP部署在网络服务器,通过可以响应客户端发送的具体请求,而且根据发送请求内容动态的生成html和xml以及其他格式的javaWeb网页,然后把数据返回给请求者。JSP技术是以Java语言作为脚本语言基础,为用户的HTTP、HTTPS请求提供和服务,能与服务器上面的其它Java相关程序共同处理复杂的业务数据和请求。

JSP是将Java相关代码与特定变动内容嵌到静态页面,以静态页面为模板基础,动态生成部分内容。JSP引入了JSP动作的XML标签,用来调用功能。另外还可以创建JSP动态标签库,像使用标准HTML或XML标签一样去使用。动态标签库能够增强功能和服务器性能,不受跨平台问题的限制问题。java JSP文件在运行时会被编译器转换成更原始的Servlet底层代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet底层代码,然后再由Java编译器统一来编译成能快速执行的计算机二进制机器码,也能够直接编译成二进制码数据。

2.5 jQuery

jQuery框架是一个快速、经典、简洁的JavaScript前端框架计划,是继Prototype之后的、又一个优秀的JavaScript代码库框架、jQuery设计的宗旨是write Less,Do More,就是写更少代码,做越多的事情、它是以封装JavaScript常用的功能和代码,提供了一种简便得JavaScript设计相关模式,优化了HTML的文档操作、事件处理、css样式、动画设计和Ajax请求交互。

jQuery核心特性可以是:具备了独特的链式语法以及短小清晰的多功能对接接口、具有高效以及灵活的css各种各样的选择器,还可以对各种CSS选择器进行扩展和延伸操作、拥有了便捷的插件扩展机制和丰富的插件管理功能。jQuery兼容了主流浏览器,如IE 8.0+、火狐、谷歌等。

2.6 Mysql

MySQL 数据库是一款安全和跨平台以及高效的,并与 PHP、Java、c++/c# 等主流编程语言技术紧密结合的轻量级数据库系统。mysql数据库系统是由瑞典的MySQL AB 公司开发、发布并支持而成,由 MySQL 的最开始的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年创建成立的的。

目前来说 MySQL数据库 被广泛地应用在 Internet 上的网站上。由于mysql数据库体积小和速度快以及总体拥有成本非常低,尤其是开放源码这一特点上占据了很有优势,使得很多互联网公司都采用 MySQL 数据库以降低成本进行开发系统。

MySQL 数据库可以称得上是目前世界上运行速度最快的 SQL 语言的数据库之一了。因为具有许多其他数据库不具备的功能意外,MySQL 数据库还是免费开源的,用户可以在网站直接通过网络下载 MySQL 数据库,不必支付任何费用就可以使用。

MySQL 特点

下面总结了一下 MySQL 具备的特点。

1) 功能强大

MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。

2) 支持跨平台

MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。

3) 运行速度快

高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。

4) 支持面向对象

PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。

5) 安全性高

灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。

6) 成本低

MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。

7) 支持各种开发语言

MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。

8) 数据库存储容量大

MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。

9) 支持强大的内置函数

PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接操作、文件上传下载功能,MySQL 数据库支持大量的扩展库以及插件, MySQLi 等,能够为快速开发 javaWeb 应用提供很好的便利。

mysql数据库的应用

MYSQL数据库是计算机系统中的一种专门来管理数据资源的一个系统。数据有多种形式展现,比如符号、图形、图像、文字、数码、及声音等,数据是所有计算机系统所要处理的对象。我们所熟悉知道的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组成数据文件,再用程序来调用,数据文件与程序文件保持着一定的关系。

在计算机应用迅速发展的情况下的今天,这种文件式管理方法便显出它的不足之处。比如来说、它使得数据通用性差以及不便于移植、在不同网络文件中存储大量重复信息和浪费存储空间以及更新不便等。

而数据库系统便能解决上述的基本问题。mysql数据库系统不从具体应用程序来说,是立足于数据本身的管理,它将数据保存在数据库当中,进行科学的管理组织,而且借助于数据库管理系统。以它为桥梁,与各种应用程序和应用系统接口,方便快捷地使用数据库中的数据。

其实总体简单地说,数据库其实就是一组经过计算机语言指令整理后的数据,存储在一个或多个文件域当中,而管理这个数据库的软件就被称为数据库管理系统软件。一个数据库系统(Database System)

可以分为数据库(Database)、数据管理系统Database Management System,DBMS两个部分。主流的数据库软件有 Oracle,Informix,Sybase,SQL Server、PostgreSQL、MySQL、FoxPro 和 Teradata 等。

数据库在 Web 开发中的重要地位

归根结底,动态网站都是对数据进行操作,我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。

Web 系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个 Web 程序员,只有先掌握一门数据库,才可能去进行软件开发。

三、需求分析和可行性分析

3.1 系统运行环境

开发系统:Windows7。

JDK版本:Java JDK1.8

开发工具:eclipse

数据库版本: mysql5

数据库可视化工具: navicat for mysql

服务器:apache tomcat 7

其他工具:谷歌浏览器控制台调整网页布局

Postman接口工具进行接口测试

3.2 总体技术设计

此系统需要java面向对象编程基础,数据库知识和功能分析。根据目前阶段所掌握的相关专业知识,以及这学期和之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于、springmvc轻量级框架网页版的家具商城管理系统平台。

3.3 社会可行性分析

在互联网技术高速发展的今天,通过互联网的传播会让企业更容易的创造更多的经 济效益,通过网页版家具商城管理系统平台的实现 ,有了更大的市场和家具商品以及校园用户,在这样一个大环境下把资源统筹规化起来,就会获得高效的信息和效益。

3.4 安全性可行性分析

人们在使用网络的时候越来越重视信息的安全性,这也促进了加密技术的发展,同时应用加密技术能够有效提升网络信息的安全性。本家具商城管理系统平台系统采用了加密保护、页面发送请求获取数据采用关键部分采用post请求对数据传输的保护机制、避免请求数据暴露在浏览器上面、以及不同用户具有不同权限操作通过这些安全性操作,保证系统的稳定性以及可靠性。

3.5 经济可行性分析

服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入 Internet ,无论您身在何处只要您可以访问 Internet 都可以使用本系统。本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要、所以在经济上具有完全的可行性。

3.6 法律可行性分析

本系统是自行研究开发的网络版家具商品网站平台管理系统,它是很有实际意义操作的系统,java开发环境软件和使用的mysql数据库都是开源代码, 开发这个教务系统不同于开发普通的系统软件,不存在侵权等问题,所有在法律上是允许可行的。

四、系统设计分析

4.1 系统模式架构

本系统经典采用B/S架构(Browser、Server)、就是浏览器和服务器架构模式进行设计架构,随着互联网Internet技术的崛起起,对C/S架构的一种变化升级或改进架构模式。目前这种架构下应用下,用户是通过WWW.xxx.com浏览器来实现数据的访问和操作,少部分事务逻辑在前端页面实现,主要业务事务逻辑在服务器端实现,形成三层结构MVC。B/S架构是WEB兴起后的一种主流网络架构设计模式,WEB浏览器是目前客户端最主要的应用软件之一。这种模式形成统一客户端,将所有系统功能够实现的核心部分都集中到服务器上面。简化了系统的开发和维护。客户机上只要安装一个浏览器就能操作,服务器安Oracle、mysql、Sybase等数据库。浏览器通过Web Server和数据库进行获取数据。 简化了客户端电脑的载荷,减轻了系统维护和升级的成本以及工作量,降低了用户成本。

4.2系统层次架构

系统根据以上的逻辑结构大约可分为三层。

系统按照处理流程层次从上至下依次划分为

(1)展现层:它处理与用户的交互界面、数据传输,信息收集等数据展示。

(2)应用层:它是系统功能逻辑处理层,主要处理展现层发出的请求,后台处理并将处理结果返回展现层。

(3)核心层:它是系统运行核心及应用层的基础,提供应用层权限控制、拦截器和数据读取等。

4.3用户需求分析

用户主要分为管理员和用户端

管理员: 管理员可以对后台数据进行管理、拥有最高权限、具体权限有登录后进行首页轮播图的配置管理、商品的配置、新品家具商城的配置管理、、家具商城分类管理配置、家具商城详情商品管理、用户管理、订单管理以及、修改密码等操作。

客户端用户:用户输入家具商城网站系统地址、可以浏览家具商城信息、需要查看详情或其他购买加入购物车等操作需要用户进行登录、,没有账号的用户可以进行注册操作、输入相关注册信息完成注册后登录。

登录完成后可以进行商品的购买、商品查询、加入购物车、修改收货地址等一系列操作。

4.3系统功能详情设计

本系统主要设计采用Java语言开发教务系统、采用springmvc、spring为后台框架、数据库框架采用mybatis框架、前端采用jsp、jquery、js、css等技术

主要模块设计如下:

用户登录管理模块:

用户输入账号和密码或手机号登录按钮进行登录、根据输入的账号和密码以及角色来判断是否登录成功以及给出对应提示信息

轮播图管理模块:

管理员可以对轮播图进行添加、修改、删除和浏览操作配置、配置好后用户端首页轮播图会显示最新的配置。

家具商品分类管理模块:

管理员登录后可以对商品分类进行管理、添加、输入对应的商品类型、点击完成添加、修改以及删除操作。

家具商品详情管理模块:

管理员登录后可以对商品详情进行管理、添加、输入对应的商品类型、商品价格、主要介绍、主要内容、商品主要图片点击完成添加、修改以及删除商品信息等操作。

家具商品详情管理模块:

管理员登录后可以对商品详情进行管理、添加、输入对应的商品类型、商品价格、主要介绍、主要内容、商品主要图片点击完成添加、修改以及删除商品信息等操作。

用户信息管理模块:

管理员登录后可以对用户信息进行管理、可以对注册的用户进行账户控制管理、禁用、可用等状态信息管理。被禁用的账户将无法登录系统

需要联系管理员

家具商品订单管理模块:

管理员登录后可以对家具商品订单管理进行查看、修改订单、配货、出库、用户支付后管理员可以进行配货出库管理。以及查看订单详情信息和用户收件人信息等操作。

修改密码和退出管理模块:

管理员登录后可以对自己的账号密码进行修改、输入原密码验证成功后连续2次数据相同新密码就可以修改成功。管理员点击注销退出跳转到登录页面重新登陆。

4.4数据整体流程分析




5.2系统功能




设计实现






5.




1




.登录模块:



用户输入网址http://localhost:8080/logout跳转到登录页面、输入登录信息手机号和密码

前端js登录布局输入框和代码编写。发送login ajax请求跳转到后台

<div class=”login-info”>手机号: <input class=”login-info-input” type=”text” name=”loginName”id=”loginName” placeholder=”请输入你的手机号”/>

</div><div class=”login-info”>密    码: <input class=”login-info-input”id=”password”type=”password”                                                                   name=”password”                                                                             placeholder=”请输入你的密码”/></div> <div class=”login-info”>验证码:   placeholder=”请输入验证码”/><img alt=”单击图片刷新!” style=”top: 14px;position: relative;” th:src=”@{/common/mall/kaptcha}”>

后台主要代码实现:

@PostMapping(value = “/login”)

public String login(@RequestParam(“userName”) String userName,

@RequestParam(“password”) String password,

@RequestParam(“verifyCode”) String verifyCode,

HttpSession session) {

if (StringUtils.isEmpty(verifyCode)) {

session.setAttribute(“errorMsg”, “验证码不能为空”);

return “admin/login”;

}

if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) {

session.setAttribute(“errorMsg”, “用户名或密码不能为空”);

return “admin/login”;

}

String kaptchaCode = session.getAttribute(“verifyCode”) + “”;

if (StringUtils.isEmpty(kaptchaCode) || !verifyCode.equals(kaptchaCode)) {

session.setAttribute(“errorMsg”, “验证码错误”);

return “admin/login”;

}

AdminUser adminUser = adminUserService.login(userName, password);

if (adminUser != null) {

session.setAttribute(“loginUser”, adminUser.getNickName());

session.setAttribute(“loginUserId”, adminUser.getAdminUserId());

//session过期时间设置为7200秒 即两小时

//session.setMaxInactiveInterval(60 * 60 * 2);

return “redirect:/admin/index”;

} else {

session.setAttribute(“errorMsg”, “登陆失败,请联系作者获得测试账号”);

return “admin/login”;

}

}

5.2家具商品轮播图添加:

管理员大家家具商品轮播图配置管理。点击添加按钮执行添加。

添加家具商品首页轮播图:

/**

* 添加

*/

@RequestMapping(value = “/carousels/save”, method = RequestMethod.POST)

@ResponseBody

public Result save(@RequestBody Carousel carousel) {

if (StringUtils.isEmpty(carousel.getCarouselUrl())

|| Objects.isNull(carousel.getCarouselRank())) {

return ResultGenerator.genFailResult(“参数异常!”);

}

String result = newBeeMallCarouselService.saveCarousel(carousel);

if (ServiceResultEnum.SUCCESS.getResult().equals(result)) {

return ResultGenerator.genSuccessResult();

} else {

return ResultGenerator.genFailResult(result);

}

}

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_39563171/article/details/145380118

请登录后发表评论

    没有回复内容