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 MethodURL
获取一组数据列表(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里的快捷方式。继续努力!

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

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

相关文章

自动化监控系统PrometheusGrafana

Prometheus 算是一个全能型选手&#xff0c;原生支持容器监控&#xff0c;当然监控传统应用也不是吃干饭的&#xff0c;所以就是容器和非容器他都支持&#xff0c;所有的监控系统都具备这个流程&#xff0c;数据采集→数据处理→数据存储→数据展示→告警 Prometheus 特点展开…

摩洛哥6.9级地震 网络出现轻度中断

北京时间2023年9月9日6时11分(当地时间8日23时11分)&#xff0c;摩洛哥发生6.9级强震。埃文科技的监测数据显示&#xff0c;受地震影响&#xff0c;摩洛哥地区的网络也出现了轻度中断。 9月9日6时10分后&#xff0c;摩洛哥地区活跃前缀数量开始减少&#xff0c;在6时50分左右达…

利用 Python 中的地理空间数据与 GeoPandas

推荐&#xff1a;使用 NSDT编辑器快速搭建3D应用场景 空间数据的真正潜力在于它能够连接数据点及其各自的位置&#xff0c;为高级分析创造无限的可能性。地理空间数据科学是数据科学中的一个新兴领域&#xff0c;旨在利用地理空间信息并通过空间算法和机器学习或深度学习等先进…

算法通关村第十九关:白银挑战-动态规划高频问题

白银挑战-动态规划高频问题 1. 最少硬币数 LeetCode 322 https://leetcode.cn/problems/coin-change/description/ 思路分析 尝试用回溯来实现 假如coins[2,5,7]&#xff0c;amount27&#xff0c;求解过程中&#xff0c;每个位置都可以从[2,5,7]中选择&#xff0c;因此可以…

error:Failed building wheel for XXX

解决方案适用于大多数的pip 安装时出现的Failed building wheel for XXX 出现问题 按以往快速安装包的经验&#xff0c;第一反应当然是使用简单又快捷的terminal命令加上镜像&#xff0c;如下&#xff1a; pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple结…

关闭训练过程中的wandb

训练的过程中反复提醒wandb的账户&#xff0c;自动化执行的话&#xff0c;不是很方便&#xff0c;因此需要关闭这个wandb的功能 提醒的方式是这样的&#xff1a; 解决办法1、注释掉wandb相关的代码&#xff0c;并且添加关闭命令&#xff1a;wandb None 参考&#xff1a; 训…

儿童折叠式和非折叠式椅子和凳子加拿大认证标准要求介绍 ASTM F2613-21

儿童折叠式和非折叠式椅子和凳子是带有刚性框架的座椅家具&#xff0c;用于支撑儿童的身体&#xff0c;使其可以直立或倾斜的姿势坐立或休息。 此次合规要求更新适用于儿童折叠式和非折叠式椅子和凳子。这类产品可以折叠起来&#xff0c;以便运输或储存。儿童椅是带有刚性框架的…

05JVM_类加载阶段

一、类加载阶段 1.加载 1.1介绍 ①Java源代码经编译生成字节码文件&#xff0c;通过类加载阶段将字节码载入方法区。 ②类加载阶段内部是C的instanceKlass描述java类&#xff0c;重要的域field有: _java_mirror&#xff0c;java类镜像。例如对String来说&#xff0c;就是St…

OpenCV(四十):图像分割—漫水填充

1.漫水填充原理 图像分割中的漫水填充&#xff08;Flood Fill&#xff09;算法是一种基于区域增长的像素分类方法。其原理是在图像中从种子点开始&#xff0c;逐渐向周围扩展&#xff0c;并根据一定的条件决定是否将相邻的像素归属于同一区域。 漫水填充的基本原理如下&#x…

通过数据模板自动生成表格table

1.数据模板中的主要几个参数需要注意下(需要加样式可自由设置参数)&#xff1a; title:填入表格的内容 col:1,占一列&#xff0c;row: 3&#xff0c;占3行 align:center居中对齐, pdL&#xff1a;14&#xff0c;padding-left:14, bold:true,加粗 width&#xff1a;100&#xff…

第十五届全国大学生数学竞赛报名快要截止了,你报上名了吗?

关于组织参加 第十五届全国大学生数学竞赛的通知 01 为了培养人才、服务教学、提高大学生学习数学的兴趣&#xff0c;培养学生分析问题、解决问题的能力&#xff0c;发现和选拔数学创新人才&#xff0c;为学生提供一个展示基础知识和思维能力的舞台&#xff0c;我校决定组织参…

02目标检测-传统检测方法

目录 一、目标学习的检测方法变迁及对比 二、 基于传统手工特征的检测算法的定义 三、传统主要手工特征与算法 Haar特征与 人脸检测算法 - Viola-Jones(了解) HOG特征与 SVM 算法(了解)&#xff08;行人检测、opencv实现&#xff09; SIFT特征与SIFT算法(了解) DPM&#…

[Java] String详解

愿一分耕耘,一份收获 文章目录 前言1. String基础概念2. String对象的比较2.1 与equals()的应用 3. 字符串的转化3.1 数字与字符串的转化3.2 大小写转换3.3 字符串与字符数组转换4. 字符串修改1.引入库2.读入数据 总结 前言 String这部分是面试中常常考到的题.string常量池,Sr…

java复习-线程的同步和死锁

线程的同步和死锁 同步问题引出 当多个线程访问同一资源时&#xff0c;会出现不同步问题。比如当票贩子A&#xff08;线程A&#xff09;已经通过了“判断”&#xff0c;但由于网络延迟&#xff0c;暂未修改票数的间隔时间内&#xff0c;票贩子B&#xff08;线程B&#xff09;…

带你打穿三层内网-红日靶场七

文章目录 前记环境配置web1信息搜集cve-2021-3129redis未授权|ssh密钥后渗透 Win7&#xff08;PC1&#xff09;永恒之蓝 web2docker逃逸 win7&#xff08;PC2&#xff09;|DC 前记 所用工具 msfcsvenomfrp蚁剑冰蝎laravel.pyfscan 注意事项 msf的永恒之蓝每次都需要两次才能…

Java 代理模式之静态代理与动态代理

1&#xff0c;代理模式 代理模式给某一个对象提供一个代理对象&#xff0c;并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 代理模式的目的&#xff1a; &#xff08;1&#xff09;通过引入代理对象的方式来间接访问目标对象&#xff0c;防…

geopandas 笔记:geometry上的操作汇总

如无特殊说明&#xff0c;数据主要来自&#xff1a;GeoDataFrame 应用&#xff1a;公园分布映射至subzone_UQI-LIUWJ的博客-CSDN博客 0 读入数据 subzone gpd.read_file(ura-mp19-subzone-no-sea-pl.geojson) subzone subzone_tstsubzone[0:5] subzone_tst subzone_tst.plot…

mingw 编译 curl ,Qt 工程使用

mingw 编译 curl 下载curl 源码 https://github.com/curl/curl 我使用8.3版 CMake-gui 配置 源码路径&#xff1a;D:/workspace/CPP/curl-8.3.0 生成路径: D:/workspace/CPP/curl-8.3.0/mingw-build 点击 Configure ,弹窗配置&#xff0c;选择 MinGW Makefiles 选择 Spec…

【Django】日志设置

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 LOGGING {version: 1,disable_existing_loggers: False,formatters: {verbose: {format: "[%(asctime)s] %(levelname)s [%(name)s:%(l…

探索AIGC人工智能(Midjourney篇)(四)

文章目录 Midjourney模特换装 Midjourney制作APP图标 Midjourney网页设计 Midjourney如何生成IP盲盒 Midjourney设计儿童节海报 Midjourney制作商用矢量插画 Midjourney设计徽章 Midjourney图片融合 Midjourney后缀参数 Midjourney模特换装 关键词生成模特照片 中国女性模特的…