当前位置: 首页 > news >正文

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求:

原始数据请求:

 //原始方式@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name = request.getParameter("name");String age = request.getParameter("age");int age1 = Integer.parseInt(age);System.out.println(name+":"+ age1);return "ok";}

springboot数据请求方式:

 //springboot方式@RequestMapping("/simpleParam")public String simpleParam(String name,Integer age){//获取请求参数System.out.println(name+":"+ age);return "ok";}

**

一、简单实体参数:

**
@RequestParam注解的使用:方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射。

在这里插入图片描述

在这里插入图片描述

 @RequestMapping("/simpleParam")public String simpleParam(@RequestParam(name="name",required = false) String username,Integer age){//获取请求参数System.out.println(username+":"+ age);return "ok";}

@RequestParam中的required属性默认为true,代表该请求参数必须传递,如果不传递将报错,如果该参数是可选中,可以将required属性设置为false。

如下图所示:
在这里插入图片描述
在这里插入图片描述

二、实体对象参数

规则:请求参数名与形参对象属性名相同,即可直接通过pojo接收。

User实体类

public class User {private String name;private Integer age;private Address address;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address=" + address +'}';}

Address实体类

public class Address {private String province;private String city;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", city='" + city + '\'' +'}';}

在这里插入图片描述
在这里插入图片描述

三、数组集合参数:

数组参数: 请求参数名与形参数组名称相同且请求参数为多个,定义数组类形参即可接受参数。

 //数组集合参数@RequestMapping("/arrayParam")public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return "ok";}

在这里插入图片描述
在这里插入图片描述
集合参数: 请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系

 @RequestMapping("/listParam")public String listParam(@RequestParam List<String> hobby){System.out.println(hobby);return "ok";}

在这里插入图片描述

在这里插入图片描述

小结:

数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装

集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系

四、日期参数

日期参数: 使用@DateTimeFormat注解完成日期参数格式转换

 //日期时间参数@RequestMapping("/dateParam")public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "ok";}

在这里插入图片描述
在这里插入图片描述

五、Json参数

Json参数: JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识

 //json参数@RequestMapping("/jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "ok";}

在这里插入图片描述
在这里插入图片描述

六、路径参数

路径参数: 通过请求url直接传递参数,使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数

 //路径参数@RequestMapping("/path/{id}")public String pathParam(@PathVariable Integer id){System.out.println(id);return "ok";}@RequestMapping("/path/{id}/{name}")public String pathParam2(@PathVariable Integer id,@PathVariable String name){System.out.println(id+":"+name);return "ok";}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

简单参数:

  • 定义方法形参,请求参数名与形参变量名一致
  • 如果不一致,通过@RequestParam手动映射

实体参数:

  • 请求参数名,与实体对象的属性名一致,会自动接受封装

数组集合参数:

  • 数组:请求参数名与数组名一致,直接封装
  • 集合:请求参数名与集合名一致,@RequestParam绑定关系

日期参数:

  • @DateTimeFormat

JSON参数:

  • @RequestBody

路径参数:

  • PathVariable

相关文章:

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求&#xff1a; 原始数据请求&#xff1a; //原始方式RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name request.getParameter("name");String age request.getParam…...

CFD模拟仿真理论知识:流体仿真应用

CFD模拟仿真理论知识:流体仿真应用 本文将介绍CFD(Computational Fluid Dynamics,计算流体动力学)模拟仿真理论知识的原理、方法和应用。通过本文对CFD的深入理解,并了解如何运用这一理论解决实际问题。...

【springboot单元测试,集成测试】

本文介绍一下SpringBoot中的测试方法 集成测试 SpringBootTest 一个普通的web api RequestMapping RestController public class HelloController {AutowiredRestTemplate restTemplate;GetMapping(value "/api/hi")public Map<String,Object> hello() {S…...

【音视频】音视频开发与学习

音视屏开发与学习 时间:2023年8月12日10:09:29 文章目录 音视屏开发与学习1.资料1.资料 1.资料下载: 这是最新的课程视频教程,如有星球过期的朋友,可以在这个群公告或者私聊我拿资料,这个资料会一直发给大家的,已经在星球的就直接在星球获取资料就行:链接:https://pan.…...

软考系统架构之案例篇(架构设计相关概念)

案例篇-架构设计相关概念 1. 架构风格的概念2. 五大架构风格有哪些3. MVC架构含义4. 云计算架构5. 云原生架构设计原则6. ESB的主要功能包括7. 质量属性的含义及其设计策略8. EJB中的 Bean 分三种类型9. 风险点、敏感点、权衡点的含义10. REST 的5个原则 1. 架构风格的概念 软…...

基于大数据的时间序列股价预测分析与可视化 - lstm 计算机竞赛

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &…...

APP分发-CDN加速原理

摘要 CDN的全称是(Content Delivery Network)&#xff0c;即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层&#xff0c;将网站的内容发布到最接近用户的网络”边缘“的节点&#xff0c;使用户可以就近取得所需的内容&#xff0c;提高用户访问网站的…...

【Java 进阶篇】Java Request 继承体系详解

在Java编程中&#xff0c;Request&#xff08;请求&#xff09;是一个常见的概念&#xff0c;特别是在Web开发中。Request通常用于获取来自客户端的信息&#xff0c;以便服务器能够根据客户端的需求提供相应的响应。在Java中&#xff0c;Request通常涉及到一系列类和接口&#…...

通过阿里云创建accessKeyId和accessKeySecret

我们想实现服务端向个人发送短信验证码 需要通过accessKeyId和accessKeySecret 这里可以白嫖阿里云的 这里 我们先访问阿里云官网 阿里云地址 进入后搜索并进入短信服务 如果没登录 就 登录一下先 然后在搜索框搜索短信服务 点击进入 因为我也是第一次操作 我们一起点免费开…...

decapoda-research/llama-7b-hf 的踩坑记录

使用transformers加载decapoda-research/llama-7b-hf的踩坑记录。 ValueError: Tokenizer class LLaMATokenizer does not exist or is not currently imported. 解决办法&#xff1a; https://github.com/huggingface/transformers/issues/22222 将tokenizer_config.json中LLa…...

计算机操作系统重点概念整理-第六章 输入输出I/O管理【期末复习|考研复习】

第六章 输入输出I/O管理【期末复习|考研复习】 计算机操作系统系列文章传送门&#xff1a; 第一章 计算机系统概述 第二章 进程管理 第三章 进程同步 第四章 内存管理 第五章 文件管理 第六章 输出输出I/O管理 文章目录 第六章 输入输出I/O管理【期末复习|考研复习】前言六、输…...

uniapp开发小程序—picker结合后台数据实现二级联动的选择

一、效果图 二、完整代码 <template><view><picker mode"multiSelector" change"bindMultiPickerChange" columnchange"bindMultiPickerColumnChange":value"multiIndex" :range"multiArray"><view c…...

React Swiper.js使用(详细版)3D聚焦特效,自定义导航按钮等

共用代码 import swiper/css import swiper/css/navigation import swiper/css/paginationimport { Navigation, Pagination, Scrollbar, A11y, Autoplay, EffectCreative } from swiper/modules;import { Swiper, SwiperSlide, } from swiper/react; 普通版本 重点&#xff…...

零基础Linux_23(多线程)线程安全+线程互斥(加锁)+死锁

目录 1. 线程安全 1.1 线程不安全前期 1.2 线程不安全原因 2. 线程互斥 2.1 加锁保护&#xff08;代码&#xff09; 2.2 锁的本质 3. 可重入对比线程安全 4. 死锁 4.1 死锁的必要条件 4.2 避免死锁 5. 笔试面试题 答案及解析 本篇完。 1. 线程安全 基于上一篇线程…...

【算法|贪心算法系列No.5】leetcode409. 最长回文串

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…...

【Linux】安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学

一&#xff0c;操作系统介绍 1.1.什么是操作系统 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是一种系统软件&#xff0c;它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源&#xff0c;为应用程序提供接口和服务&#xff0c;并协…...

机器学习实验一:KNN算法,手写数字数据集(使用汉明距离)(2)

KNN-手写数字数据集&#xff1a; 使用sklearn中的KNN算法工具包&#xff08; KNeighborsClassifier)替换实现分类器的构建&#xff0c;注意使用的是汉明距离&#xff1b; 运行结果&#xff1a;&#xff08;大概要运行4分钟左右&#xff09; 代码&#xff1a; import pandas as…...

docker应用部署---nginx部署的配置

1. 搜索nginx镜像 docker search nginx2. 拉取nginx镜像 docker pull nginx3. 创建容器&#xff0c;设置端口映射、目录映射 # 在/root目录下创建nginx目录用于存储nginx数据信息 mkdir ~/nginx cd ~/nginx mkdir conf cd conf# 在~/nginx/conf/下创建nginx.conf文件,粘贴下…...

Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)

正文 SqlServer用三种方法来组织其分区中的数据或索引页&#xff1a; 1、聚集索引结构 聚集索引是按B树结构进行组织的&#xff0c;B树中的每一页称为一个索引节点。每个索引行包含一个键值和一个指针。指针指向B树上的某一中间级页&#xff08;比如根节点指向中间级节点中的…...

C++类对象反制机制实现_精简修改版

前几天写的类对象反射机制太烦锁了,今天写个修改版的,精简为两个类 一个是类的数据结构,另一个是类的父类对象,把所有操作类的方法都写到父类中 1.类的信息结构体 struct Field_Node {TCHAR m_name[20]; //字段名称TCHAR m_typeName[20]; // 字段类型名称size_t m_typeHashC…...

基于Python与OpenCV的屏幕视觉自动化工具开发实战

1. 项目概述与核心价值 最近在折腾一个挺有意思的玩意儿&#xff0c;叫 screen-vision 。这名字听起来有点玄乎&#xff0c;但说白了&#xff0c;它就是一个 基于计算机视觉的屏幕内容实时分析与自动化工具 。你可以把它理解为一个“数字眼睛”&#xff0c;它能持续盯着你…...

【Midjourney钯金印相风格终极指南】:20年影像工艺专家亲授——从化学印相原理到AI提示词精准转译的7步闭环工作流

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;钯金印相工艺的百年历史溯源与数字复兴语境 钯金印相&#xff08;Platinum/Palladium Printing&#xff09;诞生于19世纪末&#xff0c;是摄影史上最具质感与耐久性的手工印相工艺之一。其以铂族金属盐…...

终极指南:如何安全高效地使用APKMirror下载安卓应用

终极指南&#xff1a;如何安全高效地使用APKMirror下载安卓应用 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror APKMirror是一款专注于安卓应用安全下载与管理的开源工具&#xff0c;为你提供官方应用商店之外的可靠替代方案。通过…...

AI应用统一管理:aiclublight轻量级启动器部署与配置指南

1. 项目概述与核心价值最近在折腾一些AI相关的本地化应用&#xff0c;发现了一个挺有意思的项目&#xff0c;叫aiclublight。这名字听起来有点“俱乐部之光”的意思&#xff0c;但它的核心其实是一个轻量级的AI应用启动器。简单来说&#xff0c;它就像是一个为你电脑上各种AI模…...

观察Taotoken在多日连续调用中的延迟与稳定性表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken在多日连续调用中的延迟与稳定性表现 在需要连续多日、高频率调用大模型API的场景中&#xff0c;例如持续性的内容生成…...

2025届毕业生推荐的六大AI辅助论文方案实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当人工智能技术广泛渗透开来&#xff0c;它于各行各业的应用在持续深入发展。在自动化客服方…...

SAP S/4HANA Cloud Public Edition 3-System Landscape 里的系统与 Tenant 设计

做 SAP S/4HANA Cloud Public Edition 项目时,最容易被低估的一件事,不是功能点本身,而是系统与 tenant 的边界。很多实施风险,并不是来自某个配置字段填错,也不是来自某段 ABAP 扩展代码写得不够优雅,而是项目一开始就没有把 Development、Test、Production、Customizin…...

Ryujinx模拟器:3步搞定Switch游戏在PC上流畅运行

Ryujinx模拟器&#xff1a;3步搞定Switch游戏在PC上流畅运行 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验Switch独占大作却不知从何入手&#xff1f;Ryujinx模拟器为…...

【Flutter for OpenHarmony 跨平台征文】Flutter 血压数据模型设计 + WHO标准分类算法实战指南

【Flutter for OpenHarmony 跨平台征文】Flutter 血压数据模型设计 WHO标准分类算法实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net&#x1f3af; 写在前面 嗨&#xff0c;大家好&#xff01;我是上海某高校大一计算机专业的学生…...

告别手动写测试报告:用AI自动生成可视化测试总结

测试报告的价值困境与破局在软件交付的最后关头&#xff0c;测试报告往往陷入一种尴尬的境地。一方面是倒计时的上线压力&#xff0c;另一方面是堆积如山的测试数据。许多测试工程师都有过这样的经历&#xff1a;打开Excel&#xff0c;机械地复制用例执行数、通过率、缺陷数&am…...