全栈开发笔记1:首个项目的收获

news2024/10/7 12:24:36

本文为编程导航实战项目学习笔记。

请添加图片描述

文章目录

  • 7.跨域问题解决 2023.10.2
  • 6.项目部署 2023.10.1
  • 5.统一处理返回值 2023.10.1
  • 4.开发注册和用户管理 2023.0930
  • 3.开发登陆注册接口 2023.09.17
  • 2.数据库设计
  • 1.前后端初始化 2023.9.16

7.跨域问题解决 2023.10.2

三种方式:

  1. 前端和后端用同一个域名
  2. nginx 处理
  3. 后端处理

加个 A 记录,二级域名:
在这里插入图片描述

登录态不对的问题:cookie 不一样,导致 session id 不一样
在这里插入图片描述
在这里插入图片描述

6.项目部署 2023.10.1

详情见这篇文章。

5.统一处理返回值 2023.10.1

  1. 返回数据格式化
    1. 统一返回数据格式
    2. 自定义返回错误码
  2. 封装全局异常处理
    1. 定义异常类:支持更多错误信息
    2. 编写全局异常处理器
      1. 捕获代码中的所有异常,让前端可以感知到更具体的信息
      2. 集中处理,可以看到错误日志
      3. 通过 Spring AOP 实现 RestControllerAdvice
  3. 全局请求日志和登录校验

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

axios 统一拦截处理响应:

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

4.开发注册和用户管理 2023.0930

TODO:

  1. 用户注册前端✅
    1. 遗留问题:后端返回的不是 JSON,导致前端无法检查结果
  2. 用户注销前后端 ✅
  3. 用户管理前端 ✅(1号完成)
    1. 需要组件,去 procomponent 找:https://procomponents.ant.design/components/table?tab=api&current=1&pageSize=5

看到一个做的不错的项目,支付也跑通了! https://t.zsxq.com/12DO71Zl5

在这里插入图片描述

3.开发登陆注册接口 2023.09.17

在这里插入图片描述

学习到的:

  1. session 从 JavaWeb Servlet 学习
  2. 自动填充方法参数插件:auto fill
  3. 自动生成序列化 id 的方法:选中类名,按「option + enter」
  4. 测试 controller 可以使用 IDEA 的 Tools -> Http client
  5. 编写每个接口时,都要考虑是否需要鉴权
    1. 比如查询所有的、删除的
  6. 新增字段需要修改 xxMapping.xml,可以通过双击数据库–MybatisX-Generator 自动更新
  7. 安全规范:返回给前端的实体对象,要统一做脱敏处理,即去掉不需要的字段
  8. draw.io 画系统设计图不错,有服务器什么的图标
  9. application.yml 指定接口全局 api
    1. servlet 里加 context-path
  10. 前端
  11. umi 配置代理:config -> proxy.ts 里

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.数据库设计

在这里插入图片描述

学到了:

  1. IDEA 工具创建表
  2. 自动根据表字段生成实体类:mybatisx-generator
    1. 右键选择 IDEA 数据库的某个表,点击弹出的 generator
    2. 勾选 Actual Column
  3. 创建实体类的时候,可以用 GenerateAllSetter 插件,一键生成对象的所有属性 setter 代码
    1. 选中新创建的对象,「option + . 」,在弹出的里面选择 generate all
  4. 两次密码的校验,后端也要有,因为前端的逻辑是可以绕过的
    1. 不能相信前端的校验
  5. 数据库操作,要往后放,先做边界检查
  6. 快捷键
    1. 选中接口「option + enter」,快速给实现类生成方法
    2. 接口选中「control + enter」, 快速生成 Test 方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.前后端初始化 2023.9.16

https://mvnrepository.com/

  1. 使用 Mybatis-plus 简化写 SQL 的成本
  2. IDEA 初始化项目
    1. 使用内置功能链接数据库,schema 新建 db

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ps插件:alpaca增效工具 (完美替代AI创成式填充) 2.8.1 中文版

Alpaca是一个Photoshop插件,提供了多种功能,帮助用户更高效地进行图像处理和设计。可以进行模型训练并无缝地融入图像中。同时还提供文本到图像的生成、图像到图像的变化、涂色、放大、深度图创建等功能,极大地提升了设计和艺术创作的效率和创…

Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

目录 一、Go的关键字列表和分类介绍关键字在Go中的定位语言的基石简洁与高效可扩展性和灵活性 关键字分类声明各种代码元素组合类型的字面表示基本流程控制语法协程和延迟函数调用 二、Go的关键字全代码示例关键字全代码示例 三、Go的标识符定义基础定义特殊规定关键字与标识符…

【Aseprite像素画】如何取巧做到各种画面效果(小工具的各种技巧)

文章目录 参考链接:具体如下1、水中倒影2、参考图片3多个帧添加动画物品4多个帧删除动画物品5六毛钱受击效果6添加标签7导出特定标志的gif图8忽略标志帧,然后播放9轮廓线10多个图层轮廓线11洋葱皮12替换多个不同帧的色块簇13连接细胞14快速连续删除15冻结…

战火使命兑换码最新,战火使命礼包码

战火使命手游是一款二次元卡牌游戏,玩家可以通过使用兑换码来获取礼包奖励。如果你还不知道如何获取兑换码,下面为你提供最新的礼包码合集。 关注【娱乐天梯】,获取内部福利号 战火使命兑换码最新: 1、兑换码:ZHSM0421…

安装matplotlib_

安装pip 安装matplotlib 安装完毕 导入出现bug......

C++算法 —— 动态规划(10)二维费用背包

文章目录 1、动规思路简介2、一和零3、盈利计划 背包问题需要读者先明白动态规划是什么,理解动规的思路,并不能给刚接触动规的人学习。所以最好是看了之前的动规博客,以及两个背包博客,或者你本人就已经懂得动规了。 1、动规思路简…

弧度、圆弧上的点、圆的半径(r)、弧长(s)之间的关系

要计算弧度和圆弧上的点,需要知道以下几个要素: 圆的半径(r):即圆的中心到圆周上任意一点的距离。 弧长(s):从圆周上的一个点到另一个点所经过的弧长。 弧度(θ&#x…

为什么Spring不建议使用基于字段的依赖注入

在我们通过IDEA编写Spring的代码的时候,假如我们编写了如下代码: IDEA会给我们一个warning警告: 翻阅官方文档;我们会发现: 大意就是强制依赖使用构造器注入,可选依赖使用setter注入那么这是为什么呢&am…

App测试时常用的adb命令你都掌握了哪些呢?

adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。 adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作&#xff0…

【服务器】在 Linux CLI 下安装 Anaconda

【服务器】在 Linux CLI 下安装 Anaconda 1 系统环境2 下载安装包3 安装 1 系统环境 查看系统信息 cat /etc/os-release2. 查看架构 uname -a # output # Linux localhost.localdomain 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86…

4.Tensors For Beginners-Vector Definition

在上一节,已经了解了前向和后向转换。 什么是向量? 定义1:向量是一个数字列表 这很简洁,也通俗易懂。 现有两个向量: 如果要把这两个向量给加起来,只需把对应位置的元素(组件)给加起来。 而要缩放向量&…

angularjs开发环境搭建

Angularjs是一个前端页面应用开发框架,其使用TypeScript作为开发语言,Angularjs的特性包括,使用组件、模板以及依赖注入的开发框架构建可扩展的web应用,使用易于集成的类库支持页面路由、页面表单、前后端接口交互等各种不同特性&…

MySQL5.7版本与8.0版本在CentOS系统安装

目录 前置要求 1. MySQL5.7版本在CentOS系统安装 1.1 安装 1.1.1 配置yum仓库 1.1.2 使用yum安装MySQL 1.1.3 安装完成后,启动MySQL并配置开机自启动 1.1.4 检查MySQL的运行状态 1.2 配置 1.2.1 获取MySQL的初始密码 1.2.2 登陆MySQL数据库系统 …

Python爬取诗词名句网中三国演义的乱码问题

一、乱码问题 为解决中文乱码问题,可使用chardet.detect()检测文本编码格式 详细: Python爬虫解决中文乱码_脑子不好真君的博客-CSDN博客 二、代码 #爬取三国演义 import requests import chardet from bs4 import BeautifulSoupurlhttps://www.shicim…

【Vue3】自定义指令

除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外&#xff0c;Vue 还允许你注册自定义的指令 (Custom Directives)。 1. 生命周期钩子函数 一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。 在 <script …

多通道反向字典模型

方法 将单词的definition embedding输入Bi-LSTM模型&#xff0c;经过处理得到5个分数并加权求和得到最终的置信分数 最后对分数向量进行降序排序&#xff0c;得到word rank 代码实现&#xff1a; _, indices torch.sort(score, descendingTrue) 辅助信息 这是AAAI 2020的论…

【多模态融合】TransFusion学习笔记(1)

工作上主要还是以纯lidar的算法开发,部署以及系统架构设计为主。对于多模态融合(这里主要是只指Lidar和Camer的融合)这方面研究甚少。最近借助和朋友们讨论论文的契机接触了一下这方面的知识&#xff0c;起步是晚了一点&#xff0c;但好歹是开了个头。下面就借助TransFusion论文…

Scapy样例三则

1. 演示ls()/lsc()用法: ##Exec1.pyfrom scapy.all import *## 列出scapy支持的命令 def ListScapyCmd():lsc()## 列出指定协议的各个字段, 用于构成packet def ListProtocolField(protoclName):ls(protoclName)if __name__ "__main__":print("\nexample of …

【项目开发 | C语言项目 | C语言薪资管理系统】

本项目是一个简单的薪资管理系统&#xff0c;旨在为用户提供方便的员工薪资管理功能&#xff0c;如添加、查询、修改、删除员工薪资信息等。系统通过命令行交互界面与用户进行交互&#xff0c;并使用 txt 文件存储员工数据。 一&#xff0c;开发环境需求 操作系统&#xff1a;w…

网站安全防护措施

网络安全的重要性在网站和app的发展下已经被带到了全新的高度&#xff0c;已然成为各大运维人员工作里不可或缺的环节&#xff0c;重视网络安全能给我们的网站带来更好的口碑&#xff0c;也能为企业生产创造更稳定的环境。下面我们一起来看看有哪些是我们运维人员能够做的。 1、…