本文为编程导航实战项目学习笔记。
7.跨域问题解决 2023.10.2
三种方式:
- 前端和后端用同一个域名
- nginx 处理
- 后端处理
加个 A 记录,二级域名:
登录态不对的问题:cookie 不一样,导致 session id 不一样
6.项目部署 2023.10.1
详情见这篇文章。
5.统一处理返回值 2023.10.1
- 返回数据格式化
- 统一返回数据格式
- 自定义返回错误码
- 封装全局异常处理
- 定义异常类:支持更多错误信息
- 编写全局异常处理器
- 捕获代码中的所有异常,让前端可以感知到更具体的信息
- 集中处理,可以看到错误日志
- 通过 Spring AOP 实现 RestControllerAdvice
- 全局请求日志和登录校验
axios 统一拦截处理响应:
4.开发注册和用户管理 2023.0930
TODO:
- 用户注册前端✅
- 遗留问题:后端返回的不是 JSON,导致前端无法检查结果
- 用户注销前后端 ✅
- 用户管理前端 ✅(1号完成)
- 需要组件,去 procomponent 找:https://procomponents.ant.design/components/table?tab=api¤t=1&pageSize=5
看到一个做的不错的项目,支付也跑通了! https://t.zsxq.com/12DO71Zl5
3.开发登陆注册接口 2023.09.17
学习到的:
- session 从 JavaWeb Servlet 学习
- 自动填充方法参数插件:auto fill
- 自动生成序列化 id 的方法:选中类名,按「option + enter」
- 测试 controller 可以使用 IDEA 的 Tools -> Http client
- 编写每个接口时,都要考虑是否需要鉴权
- 比如查询所有的、删除的
- 新增字段需要修改 xxMapping.xml,可以通过双击数据库–MybatisX-Generator 自动更新
- 安全规范:返回给前端的实体对象,要统一做脱敏处理,即去掉不需要的字段
- draw.io 画系统设计图不错,有服务器什么的图标
- application.yml 指定接口全局 api
- servlet 里加 context-path
- 前端
- umi 配置代理:config -> proxy.ts 里
2.数据库设计
学到了:
- IDEA 工具创建表
- 自动根据表字段生成实体类:mybatisx-generator
- 右键选择 IDEA 数据库的某个表,点击弹出的 generator
- 勾选 Actual Column
- 创建实体类的时候,可以用 GenerateAllSetter 插件,一键生成对象的所有属性 setter 代码
- 选中新创建的对象,「option + . 」,在弹出的里面选择 generate all
- 两次密码的校验,后端也要有,因为前端的逻辑是可以绕过的
- 不能相信前端的校验
- 数据库操作,要往后放,先做边界检查
- 快捷键
- 选中接口「option + enter」,快速给实现类生成方法
- 接口选中「control + enter」, 快速生成 Test 方法
1.前后端初始化 2023.9.16
https://mvnrepository.com/
- 使用 Mybatis-plus 简化写 SQL 的成本
- IDEA 初始化项目
- 使用内置功能链接数据库,schema 新建 db