首页 > 编程语言 >基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现

时间:2022-12-11 10:36:04浏览次数:56  
标签:Vue return Springboot 甜品 user 模块 userService Java


目录

​​一、开发背景和技术:​​

​​1.1 开发背景  ​​

​​1.2 B/S体系结构​​

​​1.3 Java语言简介​​

​​1.4 SpringBoot框架​​

​​1.5 MySQL简介​​

​​二、系统设计:​​

​​2.1 系统整体架构:​​

​​2.2 购物流程设计:​​

​​2.3 主要研究方法:​​

​​2.4 登录模块设计:​​

​​三、功能截图: ​​

​​3.1 登录注册:​​

​​3.2 前端首页模块:​​

​​3.3 商家查看模块:​​

​​3.4 甜品信息模块:​​

​​3.5 甜品详情模块:​​

​​3.6 商品详情和评论:​​

​​3.7 购物车模块:​​

​​3.8  购买详情页面:​​

​​3.9 订单支付模块:​​

​​3.10 甜品资讯模块:​​

​​3.11 个人中心模块:​​

​​四、后台管理模块​​

​​五、部分代码:​​

​​六、项目总结: ​​

​​七、源码获取:​​


一、开发背景和技术:

1.1 开发背景  

随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中用户对网上蛋糕商城方面的要求也在不断提高,网上蛋糕商城得到广大用户的青睐,使得网上蛋糕商城的开发成为必需而且紧迫的事情。网上蛋糕商城主要是借助计算机,通过对网上蛋糕商城所需的信息管理,让用户无需出门就能买到自己喜欢的糕点,大大节省了时间。增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。网上蛋糕商城对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。 

1.2 B/S体系结构

B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js

1.3 Java语言简介

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。

1.4 SpringBoot框架

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。

SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

1.5 MySQL简介

MySQL数据库使用的语言是SQL语言。MySQL在保存数据时是根据数据的类型和特征分开保存在不同的表中,这样当用户在需要调用的数据时,就不再需要花费大量时间去寻找数据了,只要找到对应的表,就可以找到需要的数据了。MySQL可以完美的实现对于数据库的基本操作。因为 MySQL 数据库的占用的内存少,运行快,成本低,源代码开放,可移植性强,所以越来越多的数据来源简单的项目的开发都会选择 MySQL作为数据库,而MySQL也变得越来越流行。

二、系统设计:

2.1 系统整体架构:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_前后端分离_02


2.2 购物流程设计:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_spring boot_03

2.3 主要研究方法:

本系统采用基于Java语言B/S架构模式实现的,即Java启动运行的客户端与服务器的结构,基于 J2EE的基本标准,Tomcat7.0及以上作为运行服务器支持,基于、java、springboot、vue等主要技术设计,idea作为开发环境,数据库采用Mysql 5.0以上。

(1)项目调查法:参考基于java蛋糕甜品商城系统相关的系统设计和实现、结合这次毕业设计的自己的系统需求调研,设计出本系统的主要功能设计和架构。

(2)文献参考法:通过查阅阅读最近三年基于java蛋糕甜品商城系统平台有关的优质文献参考和相关书籍、了解基于java蛋糕甜品商城系统平台的现状和涉及的技术情况

(3)经验总结法:经过网络搜索查看、老师的指导、自己的学习开发经验结合、对系统开发整理、具体情况,进行归纳、分析总结,满足系统的各项可行性分析,使系统设计和实现的合理化、标准化。

(4)实证测试法:通过自己对前面资料的查询、阅读、以及利用自己所学习的计算机相关技术来完成编码实现、进行系统功能测试、代码编写、完成功能模块开发。最后进行测试

2.4 登录模块设计:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_前后端分离_04


三、功能截图: 

3.1 登录注册:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_前后端分离_05

3.2 前端首页模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_前后端分离_06

3.3 商家查看模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_蛋糕商城系统_07

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js_08

3.4 甜品信息模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js_09

3.5 甜品详情模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js_10

3.6 商品详情和评论:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js_11

3.7 购物车模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_spring boot_12

3.8  购买详情页面:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_java_13

3.9 订单支付模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_java_14

3.10 甜品资讯模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_蛋糕商城系统_15

3.11 个人中心模块:

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_前后端分离_16

四、后台管理模块

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_蛋糕商城系统_17

基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现_vue.js_18

五、部分代码:

/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{

@Autowired
private UserService userService;

@Autowired
private TokenService tokenService;

/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}

/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}

/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}

/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}

/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}

/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
# Tomcat
server:
tomcat:
uri-encoding: UTF-8
port: 8080
servlet:
context-path: /springboot4f4p4
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot4f4p5_2?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
username: root
password: 123456

# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springboot4f4p4
# username: sa
# password: 123456

servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
resources:
static-locations: classpath:/testStatic/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
#mybatis
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.entity
global-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 1
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
#刷新mapper 调试神器
refresh-mapper: true
#逻辑删除配置
logic-delete-value: -1
logic-not-delete-value: 0
#自定义SQL注入器
sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
jdbc-type-for-null: 'null'

六、项目总结: 

        四个多月的毕业设计,最终完成了糖朵朵蛋糕甜品商城系统。网站的功能勉强达到了最初设想的结果,完成了最简单的需求。系统界面虽然看起来有些多,但都是简单的功能页面,用户操作容易上手能完成。感觉第一次独自设计一个网站是从头再学习的过程,在此期间也巩固了所学的书本知识。

在界面上运用了自己熟练的软件设计首页的图片,颜色采用统一的色调让整体看起来更加整洁,后台采用了三种活泼的亮色调,CSS简单统一背景及字体颜色。

在这次糖朵朵蛋糕甜品商城系统的设计过程中有一些还没有解决的地方。首先要设计网站就要明确目标,理清大体的思路。对于我而言还是较有难度的,俗话说万事开头难。第一步总是最关键的,花了一个月的时间在图书馆里寻找相关的书籍、在网上浏览一些蛋糕甜品商城系统的网站。有些功能还不完善。


标签:Vue,return,Springboot,甜品,user,模块,userService,Java
From: https://blog.51cto.com/u_14304894/5928075

相关文章

  • java初步学习 集合(基于黑马的课进行自学,初学者,不喜勿喷)12
    初步学习集合基本概念集合和数组相似,都可以储存数据,不同的是,集合可以自动扩容,且集合只能存储引用数据类型,不能直接存储基本数据类型基本格式这里先用最常用的ArraryLi......
  • javascript-代码随想录训练营day25
    216.组合总和Ⅲ题目链接:https://leetcode.cn/problems/combination-sum-iii/题目描述:找出所有相加之和为n的k个数的组合,且满足下列条件:只使用数字1到9每个数字......
  • VUE3 API之reactive和ref常见问题解决
    reactive解构最深的一层,失去响应性问题<scriptsetuplang="ts">lettarget={a:{b:1}};lettarget1={c:1};constobj=reactive(target)constobj1=......
  • Vue快速上门(1)-基础知识图文版
    VUE家族系列:Vue快速上门(1)-基础知识Vue快速上门(2)-模板语法Vue快速上门(3)-组件与复用01、基本概念1.1、先了解下MVVMVUE是基于MVVM思想实现的,❓那什么是MVVM呢......
  • Java agent 使用详解
    一、前言于一个即将上线的应用来说,系统监控是必不可少的,为什么需要监控呢?应用是跑在服务器上的,应用在运行过程中会发生各自意想不到的问题,像大家熟知的OOM,mysql故障,服务器宕......
  • JavaScript奇淫技巧:隐写术
    JavaScript奇淫技巧:隐写术本文将用JavaScript实现“图片隐写术”。什么是隐写术?将文本或其它数据写入图片的技术,称为“隐写术”。比如下面这张图中,便隐藏着秘密信息,虽然看起......
  • springboot 整合使用redis发布订阅功能
    在Java中有3种流程控制结构:顺序结构、选择结构、循环结构。顺序结构顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。选择结构选择结构是根据条......
  • Vue 中的 Todo-list 案例
    Vue中的 Todo-list案例1:示例2:代码结构3:代码内容4:界面效果展示......
  • Java方法(2)方法的定义及调用
        ......
  • JAVA_基础知识_创建对象内存分析
    2022-12-1100:13:07publicclassPet{Stringname;intage;publicvoidshout(){System.out.println("叫了一声!");}}publicclassA......