SpringBoot+Vue开发笔记

参考:https://www.bilibili.com/video/BV1nV4y1s7ZN?p=1

----------------------------------------------------------概要总结----------------------------------------------------------

1、MVC架构:
View:与用户交互
Controller:负责协调分发任务
Model:数据处理

2、@Controller与@RestController区别
@Controller返回页面和数据
@RestController只返回数据,通常json形式

3、上传文件
MultipartFile类处理数据

4、拦截器
作用:权限检查
步骤:写一个类继承拦截接口,然后添加到WebMvcConfigurer的拦截器注册中

5、Swagger
自动生成完善的Restful文档
添加@EnableOpenApi注解即可。

6、MyBatis使用
主要是定义好mapper接口

7、MyBatisPlus使用
只适合于单表查询
只对mapper定义接口做改造,继承BaseMapper<T>即可

8、跨域请求问题
同源策略导致的,在Controller类中增加@CrossOrigin注解即可

9、跨域认证方案
JSON Web Token(JWT)的token方案,
流程:客户端用户登录 -> 服务端生成Token -> 客户端接收到Token。客户端下次请求带上Token -> 服务端解析后拿到用户信息 -> 根据用户信息查到用户的其他关联信息

10、vue+springboot的服务端部署
vue通过build打包后放到ngnix固定目录,ngnix配置后重启即可访问前端
springboot程序打包成jar包后java -jar启动即可
 

---------------------------------------------------------------------------------------------------------------------------

1、全栈知识

后端:SpringBoot + MyBatisPlus

前端:Vue + ElementUI

公共云部署:前后端项目集成打包与部署

2、MVC架构

Controller:协调作用

如果请求的是页面和数据,使用@Controller注解即可;如果只是请求数据,则可以使用@RestController注解

3、SpringBoot实现文件上传功能

 

 4、拦截器

 

 编写代码示例:

 拦截器注册:

 5、Restful的特点

REST并不是一个标准,它是客户端和服务端交互时的设计原则,基于这种原则的Web API更加简洁、更有层次。

幂等性:重复进行一个请求和一次请求的效果相同,这里指的是服务器的资源应该是相同的。

返回错误:4XX一般是客户端错误,5XX一般是服务器错误

6、Swagger

能够自动生成完善的Restful API文档,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。

Swagger3.0的使用方式(区别于2.x版本的方式)

主函数中增加@EnableOpenApi注解

访问:http://localhost:8080/swagger-ui/index.html

7、 Mybatis使用示例

(1)添加依赖

(2)全局配置

(3)定义User对象

(4)定义Mapper接口

(5)controller中定义接口

CRUD操作汇总:

8、MyBatisPlus最简单使用示例

在上面第(4)Mapper接口定义替换如下,其他保持不变。

9、MyBatis多表查询

单表查询MyBatisPlus比较快,多表查询就不能用MyBatisPlus了。

直接在xxxMapper.xml中编写sql多表查是可以的,或者使用Mybatis的如下方法:

(1)定义User类

多了一个orders字段,该字段不在user表中。

数据库中不存在orders字段,需要自己完成映射

(2)Mapper中定义接口

@Result(column="id", property="id") 将数据库的值赋值给类,前面代表表里面的字段,后面代表类里面的字段

@Result(column="id", property="orders", javaType=List.class, many=@Many(select="com.example.mpdemo.mapper.OrderMapper.selectByUid"))

此id代表用户id,需要根据此字段信息映射到orders字段,此时用到了OrderMapper下的selectByUid来根据id查订单。

many表示多个订单,是一对多的关系,id的值传给selectByUid方法,最终的值交给orders属性。

(3)一对一场景

10、MyBatisPlus的条件查询

使用MyBatisPlus中包装的QueryWrapper

示例如下:

11、MyBatisPlus的分页查询

12、Vue工具集

npm:前端的pip工具

vue cli:Vue官方提供的构建工具,通常称为脚手架。它是基于webpack构建,也可以通过项目内的配置文件进行配置。

创建工程:vue create <project>

13、Vue中的组件

14、vue的组件间传值

 15、element-ui组件

 16、第三方图标库

 17、Axios网络通信

Promise是基于ajax的网络库,XMLHttpRequests是ajax的内部类。

发送请求示例:

Vue组件生命周期:

  • Created:app组件被创建完毕
  • Mounted:app组件被挂载完毕

一般网络请求在created中进行请求。

18、axios请求的跨域问题

报错信息:

根因:

出现了跨域问题。

比如:

前端请求:localhost:8080,它运行在了8080端口上。

后端请求:localhost:8088,它运行在了另一个端口上。

两者域名一样,协议都是http也是一样的,只有端口不一样,即不同源。

解决方案:

解决方案一(全局解决方案):

解决方案二:controller中增加注解

Vue整合实操:

最终vue的编写:

19、vueRouter路由

(1)声明式导航

路由js的示例:

包含子路由的方式:

动态路由方法:

动态路由示例:

(2)编程式导航

(3)导航守卫

20、Vuex状态管理

21、MockJS

22、vue-element-admin

 23、跨域认证

(1)Session认证

 

 (2)Token认证

 

 (3)JWT技术

 

 前两部分都是base64转为字符串,第三部分使用加密算法对前两部分进行加密。

 

 

流程:客户端用户登录 -> 服务端生成Token -> 客户端接收到Token

客户端下次请求带上Token -> 服务端解析后拿到用户信息 -> 根据用户信息查到用户的其他关联信息

24、springboot+vue阿里云部署

(1)安装工具

安装Mysql

安装Ngnix

配置JDK

(2)Vue部署

Ngnix作为web服务器,提供web服务

Vue工程中:npm run build(把vue文件变成html代码)

所有打包出来的代码都会放在dist目录

总结:

(3)Springboot部署

执行sql文件创建表格

把target下的jar包上传到linux上,通过如下命令执行程序

Nohup java -jar xx.jar > logName.log 2>&1 &

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

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

相关文章

Devart dbForge Studio for MySQL Crack

Devart dbForge Studio for MySQL Crack dbForge Studio for MySQL是一个用于MySQL和MariaDB数据库开发、管理和管理的通用GUI工具。IDE允许您通过直观的界面创建和执行查询、开发和调试存储例程、自动化数据库对象管理、分析表数据。MySQL客户端提供了数据和模式比较和同步工具…

全志F1C200S嵌入式驱动开发(应用程序开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 我们在开发soc驱动的时候,很多情况下也要验证下当前的驱动功能是否正确。当然除了验证驱动功能之外,我们还要编写业务代码和流程代码。这中间就和各行各业有关了,有的是算法,有…

Ubuntu 虚拟机和主机无法互相复制文字和文件

1.在虚拟机列表中&#xff0c;右键查看是否有安装VMware Tools&#xff0c;如果没有安装点击安装&#xff0c;如果已经安装了&#xff0c;上面显示重现安装VMware Tools&#xff0c;并且为灰色&#xff0c;如图&#xff1a; 2.如果没有安装点击安装&#xff0c;如果已经安装&am…

【2023年电赛国一必备】A题报告模板--可直接使用

任务 图1 任务内容 要求 图2 基本要求内容 图3 发挥部分内容 说明 图4 说明内容 评分标准 图5 评分内容 正文 &#xff08;部分&#xff09; 摘要 本实验旨在设计和制作一个由两个单相逆变器组成的并联系统&#xff0c;用于为电阻负载供电或并入220V电网。采用基于STM…

CASAIM自动化平面度检测设备3D扫描零部件形位公差尺寸测量

平面度是表面形状的度量&#xff0c;指示沿该表面的所有点是否在同一平面中&#xff0c;当两个表面需要连接在一起形成紧密连接时&#xff0c;平面度检测至关重要。 CASAIM自动化平面度检测设备通过搭载领先的激光三维测头和智能检测软件自动获取零部件高质量测量数据&#xf…

单片机】51单片机,TLC2543,驱动程序,读取adc

TLC2543 是一款 12 位精密模数转换器 (ADC)。 1~9、11、12——AIN0&#xff5e;AIN10为模拟输入端&#xff1b; 15——CS 为片选端&#xff1b; 17——DIN 为串行数据输入端&#xff1b;&#xff08;控制字输入端&#xff0c;用于选择转换及输出数据格式&#xff09; 16——…

【Jmeter】压测mysql数据库中间件mycat

目录 背景 环境准备 1、下载Jmeter 2、下载mysql数据库的驱动包 3、要进行测试的数据库 Jmeter配置 1、启动Jmeter图形界面 2、加载mysql驱动包 3、新建一个线程组&#xff0c;然后如下图所示添加 JDBC Connection Configuration 4、配置JDBC Connection Configurati…

android AIDL 学习使用

在android studio 2023.2中使用 1、在buidl.gradle增加以下配置&#xff0c;然后同步。不增加这些配置&#xff0c;创建aidl时显示为灰色&#xff0c;不能创建 buildFeatures {compose true// Disable unused AGP featuresbuildConfig falseaidl truerenderScript falseresVal…

数据标注对新零售的意义及人工智能在新零售领域的应用?

数据标签对于新零售至关重要&#xff0c;因为它构成了训练和部署人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;模型的基础。在新零售的背景下&#xff0c;数据标签涉及对数据进行分类、标记或注释以使其能够被机器理解的过程。然后&#xff0c;这些…

VS code 用户设置

ctrlshiftP打开用户设设置 vscode user setting.json 中的配置 {// vscode默认启用了根据文件类型自动设置tabsize的选项"editor.detectIndentation": false,//黄色波浪线"eslint.enable": false,// 重新设定tabsize"editor.tabSize": 2,&quo…

【2023年电赛国一必备】H题报告模板--可直接使用

任务 图1 任务内容 要求 图2 基本要求内容 图3 发挥部分内容 说明 图4 说明内容 评分标准 图5 评分内容 正文 &#xff08;部分&#xff09; 摘要 本实验旨在设计并制作一个空地协同智能消防系统。实验任务是通过选用STM32F103C8T6作为主控&#xff0c;AD9833作为信号源…

人工智能学习1——特征提取和距离

强人工智能和弱人工智能&#xff1a; 强人工智能&#xff1a;和人脑一样 弱人工智能&#xff1a;不一定和人脑思考方式一样&#xff0c;但是可以达到相同的效果&#xff0c;弱人工智能并不弱 —————————————————————————————————— 机器学习能…