苍穹外外卖 单体

day 01

git:1.创建本地git仓库 2.commit 3.创建远程仓库 4.push推送到远程

1. 断点调试,此时controller传进来的是账号密码

在这里插入图片描述

2.在Contrller调用service层之后,除了登录成功会讲员工实体返回,其他情况都将抛出异常

在这里插入图片描述

3. 通过配置属性类 来将配置属性封装成一个配置对象

在这里插入图片描述
在这里插入图片描述

4. 通过builder来构造对象,封装在 EmployeeLoginVO 类型的对象中

在这里插入图片描述
在这里插入图片描述

5. nginx反向代理+负载均衡

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.MD5加密处理+完善登录

在这里插入图片描述
在这里插入图片描述

7.TODO 待完成任务标记

在这里插入图片描述

8.开发流程

接口:地址, 方式 ,请求和响应的数据格式
在这里插入图片描述

9.Swagger

在这里插入图片描述

启动项目,开启了静态资源映射之后可以访问接口文档
在这里插入图片描述

在这里插入图片描述

加了Api注解就会影响接口文档的生成
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

day 02

员工管理和分类管理

1. 需求分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 全局参数

添加全局参数
在这里插入图片描述
每次请求自动携带token,方便调试

在这里插入图片描述

3 处理异常

获取异常信息:ex.getMessage();
通过确认返回的异常现象中是否包含Dulicate entry 来确定异常类型(用户已存在)
再用split函数分割,获取到用户名,加入异常信息中

在这里插入图片描述

4 请求流程

在这里插入图片描述
登录成功时返回Token给前端,每次操作时都需要去校验拦截器中的 JWT令牌(可以获得用户信息

5 ThreadLocal

需求:解析JWT令牌之后获得的id如何传给Service层?(新增员工时获取创建人(此时登录者))
答案:同一线程共享数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6 分页查询

在这里插入图片描述

查询时将参数封装成DTO实体传给后端,因为时Query类型,不能加@Requestbody
在这里插入图片描述

7 错误点()

401:校验没通过
@requestbody用于json格式!,Query直接传参数就行

8 日期格式化(使得返回到前端的时间格式化)

在这里插入图片描述
java对象转换为json对象称为序列化,json对象转换为Java对象称为反序列化

消息转换器
在这里插入图片描述

修改状态,修改时传过去的参数是要修改成的参数

day 03

1 公共字段自动填充(Aop)

问题:代码冗余,不便于后续维护

切入点:@Pointcut——精确到需要作用的方法(含参数)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2 AOP应用点(公共字段自动填充)

1 自定义注解 @AutoFill, 后续将这个注解加到需要拦截的方法上
在这里插入图片描述

2 切面类
在这里插入图片描述

3 给方法加上自定义注解
在这里插入图片描述

4 公共字段自动填充

在这里插入图片描述

3 菜品

在这里插入图片描述

在这里插入图片描述

4 文件上传

1.Oss 配置类
在这里插入图片描述

2.OSs工具类
在这里插入图片描述
3. OSs读取配置类(从配置文件中读取OSs的配置)
在这里插入图片描述

利用Oss读取配置类当作参数传给Oss配置类来创建OSS工具类

在这里插入图片描述
请添加图片描述
配置 - application-dev.yml:
在这里插入图片描述
配置类 AliOssProperties(负责读取配置):
在这里插入图片描述

OssConfiguration(负责自动创建工具类(含@Bean),从AliOssProperties中拿到参数)
在这里插入图片描述

Controller层中
在这里插入图片描述

5 关于 插入数据时一个json中含有多张表的插入情况

DishDTO类(传入的JSON):
在这里插入图片描述
Dish类:
在这里插入图片描述

DishFlavor类(一个菜品可以有多个口味 ,所以在Dish类中DishFlavor是集合形式):
在这里插入图片描述

Controller层:此处传入的Json对象,里面的属性涵盖两张表的内容
在这里插入图片描述

Service层

要点1:菜品表和口味表需要同时生效,所以该插入方法是事务,需要加上@Transaction
要点2:拷贝数据到Dish对象
要点3:获取dishId属性值需要在XML文件中设置属性
在这里插入图片描述

DishMapper.xml:
在这里插入图片描述

DishFlavorMapper.XML:

要点1:由于传入给DishFlavorMapper层的是个集合对象,所以要进行集合遍历,分别插入口味表中
在这里插入图片描述

在这里插入图片描述

6 关于查询时查一张表含有另一张表的外键

在这里插入图片描述

7 删除菜品时的要点

要点一:有些情况不能删除,例如正在售卖中的菜品不可删除,关联了套餐的也不可以删除,删除不了就抛出异常

在这里插入图片描述

7.1批量删除注意点

Service层:判断是否关联了套餐获取到的是此菜品和哪些套餐关联的一个集合。
在这里插入图片描述

Mapper层:在这里插入图片描述

MapperXML层:collection是从Mapper中传过来的dishID值,然后拼接成一个括号包起来的数组表示。

注意:批量删除时传过来一个list集合,然后在XMl层进行foreach遍历,用 XX in (xx,xx,xx) 来表示
在这里插入图片描述

8

@PathVariable 路径参数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值