SpringBoot课堂笔记20230913
本篇文章为SpringBoot学习笔记,方便自己再复习。
Maven:jar包管理工具
注解:
@Controller:处理http请求,返回的视图
@RestController: 相当于@ResponseBody和@Controller一起用,返回的是json
@ResponseBody:返回响应内容
@RequestMapping:配置url映射
例子:
@RestController
@RequestMapping("/users") //表示是下面每一个控制器方法请求路径的前缀
public class UserController{@GetMapping("/{id}")public String getById(@PathVariable Integer id){return "getById";}}
@PathVariable:用于接收路径参数,使用参数名描述路径参数。例如:
@RequestMapping(value="users/{id}",method=RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable Integer id)
//PathVariable路径参数id对应路径中的id
{System.out.println("delete user");return "'{'module':'user delete'}'";
}
@RequestParam:用于接收URL地址传参或表单传参
如:@RequestParam(“name”) String name1
表示这里定义的name1与传来的参数name是一个东西。
方法注解:@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
用于设置当前控制器方法请求访问路径与请求动作
软件设计的基本原则:单一责任原则
服务器最基本的三层系统结构:

| 功能和HTTP Method | URL |
|---|---|
| 获取一组数据列表(GET) | /base-path/records |
| 根据ID获取某个数据(GET) | /base-path/records/{recordID} |
| 新建数据(POST) | /base-path/records |
| 完整的更新数据(PUT) | /base-path/records/{recordID} |
| 部分更新数据(PATCH) | /base-path/records/{recordID} |
| 删除(DELETE) | /base-path/records/{recordID} |
| 跨域访问预请求(OPTION) | /base-path/records/{recordID} |
MVC:
M:model(模型),对应数据和逻辑
V:view(视图),代表模型包含的数据的可视化
C:controller(控制器),作用于视图和模型上。控制数据流向模型对象,并在数据变化时更新视图

post:暗送
Get:明送
Restful风格(认为post和get太过单调而提出的):
restful=有意义的URL+合适的http动词
书写风格:驼峰法则,如getById(类名)
int和integer的区别,integer是一个对象,可以为空,int是一个整数。
@Data:自动生成getter和setter
@AllArgsConstructor:自动生成全参构造函数
@NoArgsConstructor:自动生成无参构造函数
课堂代码
项目结构

StudentVO
package cn.edu.ctbu.demo1.vo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** 这是用于显示学生信息的值对象*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentVo {private Integer sno;private String name;private Integer age;}
StudentController
package cn.edu.ctbu.demo1.api;import cn.edu.ctbu.demo1.vo.StudentVo;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;@RestController //返回json数据
@RequestMapping("/api/student") //路径映射
public class StudentController {private static final List<StudentVo> students =new ArrayList<>(Arrays.asList(new StudentVo(1,"A",20),new StudentVo(2,"B",20),new StudentVo(3,"C",20)));//get all students@GetMapping("")public List<StudentVo> getAllStudents(){return students;}//get student by id@GetMapping("/{sno}")public StudentVo getStudentBySno(@PathVariable Integer sno){for(StudentVo s:students){if(s.getSno() == sno){return s;}}return null;}//create a new student@PostMapping("")public String createStudent(StudentVo student){students.add(student);return "Success";}//update an existing student@PutMapping("/{sno}")public String updateStudent(@PathVariable Integer sno,StudentVo updateStudent){for(int i=0;i< students.size();i++){if(students.get(i).getSno() == sno){students.set(i,updateStudent);return "Success";}}return "Error";}//delete a student by id@DeleteMapping("/{sno}")public String deleteStudentById(@PathVariable Integer sno){for(int i=0;i<students.size();i++){if(students.get(i).getSno() == sno){students.remove(i);return "Success";}}return "Error";}}
postman显示截图

小结
之前学过SSM框架,所以在刚学SpringBoot时没有感到很吃力,很多注解和项目的框架比较熟悉。但这次学习让自己对各个知识点都理解更深刻,更能把握。也解锁了很多IEDEA里的快捷方式。继续努力!
相关文章:
SpringBoot课堂笔记20230913
本篇文章为SpringBoot学习笔记,方便自己再复习。 Maven:jar包管理工具 注解: Controller:处理http请求,返回的视图 RestController: 相当于ResponseBody和Controller一起用,返回的是json ResponseBody:返回响应内容 …...
3D数字孪生:从3D数据采集到3D内容分析
数字孪生(Digital Twin)是物理对象、流程或系统的虚拟复制品,用于监控、分析和优化现实世界的对应物。 这些数字孪生在制造、工程和城市规划等领域变得越来越重要,因为它们使我们能够在现实世界中实施改变之前模拟和测试不同的场景…...
【杂记】git管理工具的相关应用
这里记录一些用git管理工具进行开发的命令,便于自己查看,我认为下面两篇博客写的很详细,但是为了自己方便查看,所以自己写了一些命令供自己进一步理解。gitee相对git来说更方便一些(毕竟国内的不用担心墙)&…...
看好多人都在劝退学计算机,可是张雪峰又 推荐过计算机,所以计算机到底是什么样 的?
张雪峰高考四百多分,但是他现在就瞧不起400多分的学生。说难听点,六七百分的 热门专业随便报谁不会啊? 计算机专业全世界都是过剩的,今年桂林电子科技,以前还是华为的校招大学,今年 计算机2/3待业。这个世…...
leetcode 26.删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做…...
jitsi音视频会议集成到自己的网页中
将jitsi视频会议集成到自己的web网站: 源码: <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><meta name"viewport" content&…...
浅析Java责任链模式实现
一、概要 定义:责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 二、应用场景: 1.多条件流程判断:权限相关…...
SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决
Java后端Long类型的范围 -263~263,即:-9223372036854775808~9223372036854775807,它是19位的。 这个数字可以通过方法获得:Long.MAX_VALUE、Long_MIN_VALUE。 前端JS的数字类型的范围 -253~253,即:-9007…...
vue使用elementUI的upload上传文件封装
这篇文章的目的 将文件上传的方法封装一下,供大家统一调用, 话不多说,直接上代码 upload 核心参数说明 action 上传的地址accept 接受上传的文件类型multiple 是否开启多文件上传模式limit 限制上传个数fileList 文件列表disabled 是否禁用 upload 核心方…...
cenos自动启动tomcat
首先创建一个脚本 关闭tomcat 等待2分钟 启动tomcat 并且把日志输出在 /usr/local/tomcat/tomcatchognqi.log #!/bin/bashexport JAVA_HOME/usr/local/jdk/jdk1.8.0_211 export JRE_HOME$JAVA_HOME/jre# 日志文件路径和文件名 LOG_FILE"/usr/local/tomcat/tomcatchognqi.…...
OSI模型与数据的封装
1、OSI模型 上层|| 七层模型 四层模型|| 应用层| 表示层 应用层 http/ftp/ssh/ftps| 会话层 -----------------------------------------------------------------------| 传输层 传输层 tcp/udp ------------------------------…...
【李沐深度学习笔记】数据操作
本课观看地址 数据操作p1 N维数组样例 N维数组是机器学习和神经网络的主要数据结构 1-d向量就是样本的各特征抽象成一个向量;2-d矩阵的每一行是一个样本,每一行都是一个样本的特征向量 3-d可以表示RGB图片,RGB图像是一个三维数组ÿ…...
【蓝桥杯选拔赛真题61】Scratch小猫照镜子 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析
目录 scratch小猫照镜子 一、题目要求 编程实现 二、案例分析 1、角色分析...
vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)
vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题) 1、安装依赖2、在utils中创建htmlToPDF.js文件3、在vue中引入并使用 1、安装依赖 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdf2、在utils中创建h…...
软件测试:黑盒测试用例的四种设计方法
一、输入域测试用例设计方法 输入域测试法是一种综合考虑了等价类划分、边界值分析等方法的综合方法,针对输入域测试法中可能出现的各种情况,输入域测试法主要考虑三个方面: (1)极端测试(ExtremalTesting),要求在输入域中选择测…...
数据库开发-MySQL基础DQL和多表设计
1. 数据库操作-DQL DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。 1.1 介绍 查询关键字:SELECT 查询操作是所有SQL语句当中最为常见,也是最为重要的操作。在一个正常的业务系统中,查询操作的使…...
PowerDesigner 逆向工程以及IDEA中UML插件
1、MySQL数据库连接(JDBC方式) 1.1 新建一个pdm,dbms选择mysql 1.2 Database - Connect 选择数据库连接 1.3 配置连接信息 数据库连接这里是通过一个配置文件来获取连接信息的,首次的话因为没有,所以我们需要选择…...
企业架构LNMP学习笔记56
MongoDB数据类型操作:CURD 1、添加数据: mongodb里存储数据的格式文档形式,以bson格式的文档形式。 创建数据库: > use tp5shop switched to db tp5shop > db.getName() tp5shop使用切换库,不存在自动创建&am…...
[Linux入门]---搭建Linux环境
1.Linux环境的搭建方式 使用Linux操作系统的三种途径: 1.直接安装在物理机上,但是由于 Linux 桌面使用起来非常不友好,不推荐。 2.使用虚拟机软件,将 Linux 搭建在虚拟机上,但是由于当前的虚拟机软件(如 VMWare 之类的…...
性能测试知多少---性能分析与调优的原理
最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库。从操作系统(CPU调度,内存管理,进程调度,磁盘I/O)、网络、协议(HTTP, TCP/IP )&…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
