Spring Boot ——瑞吉外卖项目
资源
瑞吉外码教程链接:https://www.bilibili.com/video/BV13a411q753?spm_id_from=333.999.0.0
项目资源链接:https://www.bilibili.com/video/BV13a411q753?spm_id_from=333.999.0.0
软件开发介绍
软件开发流程

角色分工

瑞吉外卖项目介绍

技术选型

功能架构

角色

开发环境搭建
数据库搭建

maven项目搭建

Spring Boot 配置
pom.xml依赖
<!--spring boot父类-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.23</version>
</dependency>
<!--javaMail-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.5</version>
</plugin>
</plugins>
</build>
application.xml 的配置
server:
port: 8080
spring:
application:
#应用名称 , 可选
name: reggie_take_out
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: password
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射 address_book ---> AddressBook
map-underscore-to-camel-case: true
#日志输出
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID
# 文件上传路径
reggie:
path: H:\个人项目\reggie\img\
编写启动类

导入静态资源

编写静态资源映射类

功能开发
登录功能
需求分析
1.页面原型展示

2.登录页面展示

3.查看登录请求信息

4.数据模型(employee表)

代码开发
1.创建实体类Employee,和employee表进行映射

2.创建Controller、Service、Mapper

3.导入返回结果类R

4.在Controller中创建登录方法
心得:在写代码时首先分析我们真正处理的逻辑,把这个业务逻辑理清楚,然后具体处理的步骤梳理好后,再去开始编码。


功能测试
后台退出功能
需求分析

代码开发


功能测试
完善登录功能
分析问题

代码实现



功能测试
新增员工
需求分析

数据模型


代码开发



使用方法一:有不好的地方,就是当每个页面都有异常,要到每个页面都写一遍。这样维护代码不太好。
使用方法二:把处理异常的操作单独建一个类来进行处理

功能测试
总结

员工信息分页查询
需求分析

代码开发

首先先配置Mybatis-plus的分页


功能测试
启用/禁用员工账号
需求分析



代码开发




功能测试

代码恢复



编辑员工信息
需求分析

代码开发


功能测试
分类管理业务开发
效果展示

公共字段自动填充
问题分析

代码实现

实现步骤:
1.在实体类的属性上加上@TableField注解,制定自动填充的策略

2.按照框架要求编写元数据对象处理器,在此类中统一为公共字段赋值,此类需要实现MetaObjectHandler接口

功能测试

功能完善





实现步骤:
1.编写BaseContext工具类,基于ThreadLocal封装的工具类

2.在LoginCheckFilter的doFilter方法中调用BaseContext来设置当前登录用户的id

3.在MyMetaObjectHandler的方法中调用BaseContext获取登录用户的id

新增分类
需求分析


数据模型


代码开发


功能测试
分类信息分页查询
需求分析

代码开发

功能测试
删除分类
需求分析

代码开发

功能测试
功能完善

1.实体类 Dish 和 Seteal(从资料中复制即可)
2.Mapper接口DishMapper和SetmealMapper


3.Service接口DishService 和 SetmealService


4.Service实现类DishServiceImpl和SetmealServiceImpl


修改分类
需求分析

代码开发
功能测试
文件上传下载
文件上传介绍



文件下载介绍

文件上传代码实现


文件下载代码实现


新增菜品
需求分析

数据模型


代码开发



功能测试
菜品信息分页查询
需求分析
uploading-image-531627.png
代码开发


浙公网安备 33010602011771号