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

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

请添加图片描述

文章目录

  • 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.mzph.cn/news/99441.shtml

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

相关文章

用c语言实现静态通讯录

思路: 将代码分成三个模块,头文件contact.h:声明函数,定义结构体 test.c测试类,contact.c用来实现通讯录中的函数功能 1.打印菜单,让用户进行选择 2.定义一个结构体PeoInfo,其中包含联系人的…

OCR让点读笔如虎添翼

点读笔是一种智能学习工具,它可以通过识别文字来提供相应的语音或图像反馈。在实现文字识别功能时,点读笔通常会借助OCR(Optical Character Recognition,光学字符识别)技术。下面将详细介绍点读笔如何利用OCR技术实现文…

【Spring Cloud系统】- Zookeer特性与使用场景

【Spring Cloud系统】- Zookeer特性与使用场景 一、概述 Zookeeper是一个分布式服务框架,是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题。如:统一命名服务、状态同步服务、集群管理、分布式应用配置…

Python的logging模块Demo

Tip:默认情况下,logging模块不会自动地将日志存储到某个特定路径,除非你指定了该路径。你需要创建一个FileHandler,然后为其设置一个文件路径,这样日志就会被写入到该文件中。 以下是一个简单的例子,展示如…

Android开发入门技能(Java)

Android开发入门技能 一些流行的框架和库 安卓开发中有许多主流框架和库,它们可以帮助开发者更轻松地构建功能强大、高效和可维护的应用程序。以下是一些主要的安卓开发框架和库: Android Jetpack:Android Jetpack是官方提供的一套库和工具…

基于AlexNet深度学习网络的智能垃圾分类系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、基于AlexNet深度学习网络的智能垃圾分类系统概述 4.2、基于AlexNet深度学习网络的智能垃圾分类系统主要原理 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab20…

【CSS】Tailwind CSS

直接参考 Tailwind CSS 安装提供了四种方式。因为我常用构建工具搭建项目,所以选择 Using PostCSS 。 其中 tailwind.config.js 的配置可以改为: module.exports {content: [./index.html, ./src/**/*.{vue,js,ts,jsx,tsx}],theme: {extend: {},},pl…

在宝塔面板环境下安装nps服务端

在宝塔面板环境下安装nps服务端 一、所需环境二、开始安装三、打开nps控制台四、更改默认账号密码和连接秘钥五、反向代理挂载SSL证书 一、所需环境 阿里云轻应用服务器(选择宝塔应用镜像)域名(最好也是阿里注册的域名)对应的ssl…

echarts的bug,在series里写tooltip,不起作用,要在全局先写tooltip:{}才起作用,如果在series里写的不起作用就写到全局里

echarts的bug,在series里写tooltip,不起作用,要在全局先写tooltip:{show:true}才起作用,如果在series里写的不起作用就写到全局里 series里写tooltip不起作用,鼠标悬浮在echarts图表上时不显示提示 你需要…

聊聊分布式架构01——http通信基础

目录 web通信的简单结构 网络通信基础TCP/IP TCP/IP 通信传输流 HTTP中的三剑客 负责传输的IP协议 确保可靠性的TCP协议 SYN攻击(SYN Flood Attack) 四次挥手 负责域名解析的DNS服务 基于 TCP 协议实现通信 TCP 协议的通信过程 Web通信的简单…

LinkedBlockingQueue:Java并发编程的强大工具

LinkedBlockingQueue:Java并发编程的强大工具 在Java并发编程中,LinkedBlockingQueue是一个非常重要的数据结构,它是一个线程安全的队列,能够有效地管理和控制多线程环境中的任务。本文将介绍LinkedBlockingQueue的工作原理、应用…

基于PSD-ML算法的语音增强算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1.加窗处理: 2.分帧处理: 3.功率谱密度估计: 4.滤波处理: 5.逆变换处理: 6.合并处理: 5.算法完整程序工程 1.算法…

visual studio解决bug封装dll库

1.速度最大化 O2 2.设置输出目录 配置属性/常规/输出目录 链接器/常规/输出dll文件 链接器/调试/输出程序数据库pdb文件 链接器/高级/导入库 3.输出X86 X64分别对应的dll、lib、pdb 然后修改更新说明 更新说明格式如下: 4.将库提交到FTP每日更新库文档下 和测试交接…

docker入门加实战—docker安装并配置阿里云加速

docker入门加实战—docker安装并配置阿里云加速 为什么要学习docker 在开发和部署项目的过程中,经常会遇到如下问题: 软件安装包名字复杂,不知道去哪里找安装软件和部署项目步骤复杂,容易出错 这就是我们今天要学习Docker技术…

idea如何拷贝maven中所引用的所有jar

要拷贝 Maven 中引用的所有 JAR 文件,可以使用 Maven 提供的命令行工具和插件。以下是一些步骤供您参考: 确保已经在本地安装了 Maven。 在命令行中进入包含 Maven 项目的根目录。 运行以下命令,将项目构建到本地仓库: mvn clea…

千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)

文章目录 前言心得体会一、 UDP 协议简单回顾二、UDP接收实现三、完整代码展示四、仿真测试(1)模拟电脑数据发送,(2)测试顶层文件编写(3)仿真文件(4)仿真波形前言 在前面我们对以太网 UDP 帧格式做了讲解,UDP 帧格式包括前导码+帧界定符、以太网头部数据、IP 头部数…

vue3的element-plus的el-dialog的样式修改无效问题

问题描述 想要修改element-plus的对话框el-dialog中的样式,发现在页面style的scoped属性下,使用:deep深入选择器进行修改是无效的。(vue2下深度选择器是有效的) //无效 :deep(.el-dialog){background-color: transparent; }解决…

跨平台应用开发比较,QT还是Electron

开发技术比较 在技术选择中,我们选中了两个技术路线,一个是基于C的QT,一个是基于nodejs的electron,我们仔细比价了两个产品的优缺点。 electronQT开发简单,上手快速上手慢,但是性能高适用于一些单一功能的…

解释器模式 行为型模式之五

1.定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器。比如加减乘除在代码里是一种表示,我们需要翻译成可以阅读的数学公式,并且可以供用户输入数字得到输出结果。 2.组成结构 抽象表达式(Abstract Expres…

比较react和vue的响应式原理

React 和 Vue 都使用虚拟 DOM 来提高性能,但在响应式原理和状态管理方面有一些不同。React 更注重单向数据流和手动状态管理,而 Vue 强调响应式数据绑定和自动状态追踪,使开发更加便捷。 React的响应式原理: 虚拟 DOM和单向数据流…