springboot和vue写个小项目

news2024/10/6 10:35:50

遵循“约定优于配置”的原则,只需要很少的配置或使用默认的配置。
能够使用内嵌的Tomcat、Jetty服务器,不需要部署war文件。
提供定制化的启动器Starters,简化Maveni配置,开箱即用。
纯)java配置,没有代码生成,也不需要XML配置。
提供了生产级的服务监控方案,如安全监控、应用监控、健康检测等。

 setting里配置maven

现在来看controller的用途

 啥是热部署

 

 在properties文件里配置devtools

 如果我们使用idea还需要继续设置

 

 

 新版automake这个设置在 settings advance setting 下面

关于控制器相关概念

来两个注解 

 

前后端分离一般用@RestController 

@RestController返回的数据呢,就是以文本形式交给前端,前端再对数据进行处理,后端不会涉及到前端的内容         

 

 

 

 默认就是get请求

那前端传参数进来我如何接收呢?

 

 

 

 post请求参数可以放到url后面也可以放到请求body里面

 

如果是参数特别多,比如注册的使用场景,那我们要封装一个软件工程里的实体概念,搞个user类接受的参数就是类的属性

 

 此外名称类型也要保持一致

 

静态资源设置

默认有映射 

 

 

 

前端要是传头像的话要用到文件上传

 在前端要有对应的表单,enctype改成formdata

 

 

 上传功能:将用户传来的文件存储到web服务器的本地

 

 

 

 我们可以打印出动态的路径,这个路径是idea自己分配的,打包部署之后他的路径就不会变化了,想要方便调试的话,可以把path改成固定的C盘,我们怎么存储它呢?我们自定义一个方法,然后把文件和路径传递给这个方法,在这个方法里面,我们做一个判断,创建一个JAVA的file这个对象,通过这个对象,我们把路径传给他,判断这个路径到底存不存在?如果不存在的话(第一次运行的时候upload肯定不存在,但是request.getServletContext()这个服务器运行路径是存在的,就创建这个upload目录         然后再创建一个文件,这个文件对象代表我们最终要存储的文件,把路径和文件原始名称加上拼接出完整路径,利用multipartfile对象的transferto方法把网络上传过来的文件存到上面的完整路径当中

那用户如何访问自己上传的图片呢

 

 改下静态资源的路径

但是记得把这个删掉啊不然后续访问static下的图片就不行了

这里注意把静态路径模式参数删了,否则会默认去找静态资源而不是上传的资源

拦截器

判断用户是否登录,用来拦截请求,减少冗余代码 

 前端请求先到拦截器

怎么用呢,先定义java类,然后继承handleInterceptor 

返回真就会通过然后继续下一个拦截器

拦截器要用要先注册

 

restful风格 前端后端交互时遵循的一种原则,使用此理念设计出来的接口api更加简洁

 

 

 安全性就是get就不该修改服务器数据

幂等性就是n此请求和一次结果得一样

 

 编程时如何设计成restful风格呢?

 

 

 

 

 后端会有很多个人开发,比如订单模块的接口 ,给到文档swagger动态生成给到前端

 

 

 

可以读到我们后端写的控制器还有里面的方法

可以通过注解来 

 

 

 mybatisplus解决面向对象与关系型数据库不匹配的问题,orm帮我们完成对象到数据库中记录的映射

 

连接池来申请多个连接提高连接效率

 

 我们的查询要怎么编写代码啊??

首先添加依赖,配置数据库,

编写controller文件夹里的内容如此一来我们可以用浏览器来测了

用户访问这个方法后我们要找到 mapper去操作 数据库 

1. 搞个实体entity编写实体类

2.创建mapper文件夹来放数据库相关的操作接口

(为啥是接口呢?mybatis不需要具体的实现类,只需要方法声明,所有操作由mybatis来完成)

返回的泛型user就已经设计orm了

这里的sql语句回去找propeties里面的数据库配置,查询出来会自动帮你放到list里

 

3.在启动类里把接口文件夹扫描一下

 

 

那其中具体的原理是什么呢?

我们会想着到controller里面实现接口里的方法,不能直接new接口

 

spring会自动帮我们实例化usermapper,帮我们管理usermapper的实例,内部通过动态代理的方式帮我们生成了实现类,并且继承了或者说实现了接口,然后帮我们实现数据库传递的方法

控制器里想用mapper怎么办呢?首先声明定义一个属性,然后spring有个功能就是用注解autowired注入mapper实例化出的对象

然后调用接口里的方法就行 

 

 前后端分离的项目如何转成json格式呢?

 

插入操作

 

 然后你我们用mybatitsplus改改

想用这个,有没有人能说一下答辩要是老师要你当场改写增删改查怎么搞??

 

 如果表名和实体名不一致也不要紧

在实体类上告诉它它对应的表是哪个?

还有别的注解可以设置成自增啥的 

 

多表查询这么搞??查用户的时候看用户还有那些订单?

mybatis提供了四个注解

 

 把id作为参数传给ordermapper的selectbyid使用

 条件查询

 分页查询

当数据库有成千上万条的时候,不可能一下全部搞出来,当前端点了下一页的时候再继续查询

先做一个分页拦截器

 

 

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

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

相关文章

4月11日,每天30秒,昨夜今晨一览无余/我国首条“西氢东送”管道纳入国家规划/国际机构:中国经济蓬勃复苏,展现广阔投资

-> 昨天的世界(点击进入) <- http://mp.weixin.qq.com/s?__bizMzU4MzQ4Mzk0Nw&mid2247488724&idx1&snd19817d3c7fd9aeb521052090eb439e0&chksmfda90390cade8a864965c805b86acd253f5d74368ae8767b7f00b80d4af5bcc42feef7635641&scene21#wechat_redir…

Qt扫盲-Qt图表类综述

Qt支持图表类综述一、概述二、图表类型1. 折线图和柱状图2. 面积图和散点图3. 柱状图4. 饼图5. 盒须图6. 烛台图表7. 星座图图表三、坐标轴 Axes四、图例五、与图表交互1. 动态绘制数据2. 深入数据3. 缩放和滚动4. 鼠标悬停六、主题一、概述 Qt Charts支持创建时尚的、交互式的…

Jetpack Compose之对话框和进度条

概述 对话框和进度条其实并无多大联系&#xff0c;放在一起写是因为两者的内容都不多&#xff0c;所以凑到一起&#xff0c;对话框是我们平时开发使用得比较多的组件&#xff0c;像隐私授权&#xff0c;用户点击删除时给用户提示这是一个危险操作等&#xff0c;进度条的使用频…

一文吃透Elasticsearch

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址 如果访问不了Github&#xff0c…

【自制】我造了一台 钢 铁 侠 的 机 械 臂 !【硬核】

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。

当我跑步时在想什么

最近好几个人对我说&#xff1a;你瘦了。这是非常激励人心的反馈&#xff0c;验证了跑步是有效的。只要今天开始锻炼&#xff0c;最胖的时候就算过去了&#xff0c;余生都会越来越美。前几天佛山50km徒步&#xff0c;带小朋友走了一半。下午有运动会&#xff0c;就没有走完了。…

提高职场效率,原来可以这么简单

身为职场人&#xff0c;你是否也有过类似的经历 看上去忙的很&#xff0c;手头东西又杂又多&#xff0c;但是一天过去了&#xff0c;到点下班发现啥都没做好当领导布置任务时&#xff0c;常常做了A后就忘记B&#xff0c;任务零碎不会安排做一件事情总是容易拖延&#xff0c;导致…

ROS开发之如何使用RPLidar A1二维激光雷达?

文章目录0.引言1.创建工作空间2.获取rplidar_ros包并编译3.检查雷达端口4.启动launch显示雷达扫描结果0.引言 笔者研究课题涉及多传感器融合&#xff0c;除了前期对ROS工具的学习&#xff0c;还需要用雷达获取数据&#xff0c;进行点云处理。虽然激光雷达已经应用很广泛&#x…

快速构建目标检测coco格式数据集

目标检测coco格式数据集coco数据集快速构建总结coco数据集 首先搞清楚coco格式数据集的组成。在data数据下、分为train、val以及annotations三个文件夹。&#xff08;image是我未划分训练集和测试集的图像存储文件夹&#xff09; 1.train文件夹&#xff1a;用来存放作为训练的图…

一个PostgreSql cli的工具

GitHub - xuejiazhi/pgii: pgii is a PostgreSql cli tool. PostgreSql is developed in CMD or Golang and can be compiled for multiple platforms pgii 是一个PostgreSql cli的工具,对PostgreSql 在CMD或者,采用Golang进行开发,可以多平台下面编译使用&#xff1a; 跨平台…

C/C++|物联网开发入门+项目实战|嵌入式C语言高级|C语言常用关键字及运算符操作-学习笔记(8)

文章目录2-2: C语言常用关键字及运算符操作关键字参考&#xff1a; 麦子学院-嵌入式C语言高级2-2: C语言常用关键字及运算符操作 [重点] 掌握C语言的常用关键宇及其应用场景&#xff0c;使用技巧 关键字 编译器&#xff1a;预先定义了一定意义的字符串&#xff0c;32个。 s…

RHCE3

综合练习&#xff1a;请给openlab搭建web网站 ​ 网站需求&#xff1a; ​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! ​ 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于[www.…

对Spring循环依赖的一些理解

什么是循环依赖 类A有个字段需要注入类B&#xff0c;类B有个字段需要注入类C&#xff0c;类C有个字段需要注入类A&#xff0c;它们之间的依赖关系形成了一个循环。 Spring初始化完一个对象之后会把实例放入单例池&#xff08;singletonObjects&#xff09;中&#xff0c;也就是…

【FFT】快速傅里叶变换

开个新坑&#xff0c; 快速傅里叶变换在现在世界的各个领域都发挥重要作用。 包括音视频压缩、5G、WIFI、卷积、航空、雷达、核武等等 为什么使用快速傅里叶变换 快速傅里叶变换计算复杂度仅为O(nlogn) 而原傅里叶变换是O(n^2) 什么是快速傅里叶变换 是指对傅里叶变换中的重…

蓝桥杯嵌入式第十一届客观题解析

文章目录 前言一、题目1二、题目2三、题目3四、题目4五、题目5六、题目6七、题目7八、题目8九、题目9十、题目10总结前言 本篇文章将为大家带来蓝桥杯嵌入式省赛第11届客观题的解析。 一、题目1 积分电路的作用是对输入信号进行积分,因此在输入一个矩形波时,输出波形将是输…

租车管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a;https://download.csdn.net/download/qq_50954361/87682508 更多系统资源库…

【MySQL】索引优化与查询优化(重点:索引失效的11种情况)

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍MySQL的内连接、外连接、索引失效的11种情况、关联查询优化、子查询优化、排序优化、GROUP BY优化、优化分页查询、覆盖索引、索引条件下推和其它查询优化策略的一些问题。 后续会继续分享MySQL和其他重要知识点总…

Springboot基础学习之(二十一):Swagger基础学习(swagger信息介绍,配置扫描接口和开关,分组和接口注释)

什么是Swagger&#xff1f; Swagger2是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化RESTful 风格的Web 服务 使用Swagger你只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具&#xff0c;就可以做到生成各种格式的接口…

Flutter 滚动组件ListView,GridView,Sliver以及滚动监听

前言 身是菩提树 心是明镜台 时时勤拂拭 模式染尘埃 这玩意不难&#xff0c;就是东西多。。。 1 看一下继承关系 class GridView extends BoxScrollView abstract class BoxScrollView extends ScrollView abstract class ScrollView extends StatelessWidget 2 下面是scr…

set和map

set和map关联式容器键值对树状结构关联式容器set介绍使用multiset介绍使用map介绍使用multimap介绍使用底层容器AVL树概念操作节点定义插入旋转红黑树&#xff08;RBTree&#xff09;概念节点的设计迭代器的设计结构插入红黑树模拟实现set与map模拟实现map模拟实现set关联式容器…