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

Spring Boot教程之十一:获取Request 请求 和 Put请求

如何在 Spring Boot 中获取Request Body?

Java 语言是所有编程语言中最流行的语言之一。使用 Java 编程语言有几个优点,无论是出于安全目的还是构建大型分发项目。使用 Java 的优点之一是 Java 试图借助类、继承、多态等概念将语言中的每个概念与现实世界联系起来。

Java 中还有其他几个概念可以增强 Java 代码和程序员之间的用户友好交互,例如泛型、访问说明符、注释等。这些功能为 Java 程序的类和方法添加了额外的属性。在本文中,我们将讨论如何在 Spring Boot 中获取传入Request Body。

@RequestBody:注解用于获取传入请求中的请求主体。

要掌握 Spring Boot 并有效处理请求主体和数据处理,请考虑参加Java 后端直播课程。本课程涵盖了请求处理等基本后端开发主题,并帮助您构建强大、可扩展的 API。在此处了解更多信息。

Spring Initializr是一个基于 Web 的工具,使用它我们可以轻松生成 Spring Boot 项目的结构。它还为以元数据模型表达的项目提供了各种功能。此模型允许我们配置 JVM 支持的依赖项列表。在这里,我们将使用 spring 初始化程序创建应用程序的结构,然后使用 IDE 创建示例 GET 路由。因此,为此,请按顺序执行以下步骤:

步骤 1:转到Spring Initializr

根据要求填写详细信息。对于此应用程序:

Project: Maven
Language: Java
Spring Boot: 2.2.8
Packaging: JAR
Java: 8
Dependencies: Spring Web   

第 2 步:单击“生成”按钮,下载启动项目。

项目元数据

步骤 3:解压 zip 文件。现在打开合适的 IDE,然后转到文件->新建->从现有源创建项目->Spring-boot-app并选择 pom.xml。单击提示中的导入更改并等待项目同步。

项目创建

注意:在导入 Maven 项目窗口中,确保选择与创建项目时选择的 JDK 版本相同的版本。

步骤 4:转到src -> main -> java -> com.gfg.Spring.boot.app并创建一个名为 Controller 的 Java 类,并添加注释 @RestController。现在创建一个 GET API,如下所示:

例子:

Person.java

Java

// Class
public class Person {

    // Attributes of Person
    int id;
    String name;
    int age;

    // Constructor of this class
    public Person(int id, String name, int age) {

        // this keyword refers to current instance object
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Method of Person class
    // toString() method
    public String toString() {

        // Simply returning the name and age of person
        return id + " " + name + " " + age;
    }

Controller.java

Java

@RestController
public class Controller {

    @GetMapping("/Get")
    public void getBody() {
        // Creating a new Person object by calling a method that creates and returns a Person object
        Person ob = createPerson();

        // Print and display the person object
        System.out.println(ob);
    }

    private Person createPerson() {
        // Create and return a new Person object
        return new Person(1, "Aayush", 32);
    }
}

此应用程序现已准备好运行。运行Main类并等待 Tomcat 服务器启动。

注意:这里我们没有使用 @RequestBody 注释,因为它用于处理 POST 请求;由于我们没有在请求正文中发送任何数据,所以这里不需要 @RequestBody 注释。

如果我们想添加 @RequestBody 注释来处理 GET 请求,我们应该使用不同的 HTTP 方法,即 @PostMapping 而不是 @GetMapping。下面是相同的代码实现。

Java

@RestController
public class Controller 
{

    @PostMapping("/Get")
    public void getBody(@RequestBody Person ob) 
    {
        // Print and display the person object
        System.out.println(ob);
    }
}

我们不必创建 Person 对象,因为当向端点发出/Get请求时,ob参数将自动与来自请求正文的数据相关联。

注意:对象的创建将由 Spring 框架根据请求体中的 JSON 数据来处理。Person

步骤5:现在转到Postman并添加URL地址并发出获取请求。

获取请求

注意: Tomcat 服务器的默认端口是 8080,可以在 application.properties 文件中更改。

输出:最后将在下面的终端/CMD 上生成如下输出: 

 1 Aayush 32

 如何在 Spring Boot 中发出 Put 请求?

Java 语言是所有编程语言中最流行的语言之一。使用 Java 编程语言有几个优点,无论是出于安全目的还是构建大型分发项目。使用 JAVA 的优点之一是 Java 试图借助类、继承、多态等概念将语言中的每个概念与现实世界联系起来。

Java 中还有其他几个概念可以增强 Java 代码和程序员之间的用户友好交互,例如泛型、访问说明符、注释等。这些功能为类以及 Java 程序的方法添加了额外的属性。在本文中,我们将讨论如何请求 Spring Boot。

PUT 和 POST 请求之间的区别

当我们必须更新特定数据时,通常使用 Put 请求,而当我们必须添加数据库中不存在的新数据时,则使用 Post 请求。

@PutMapping:此 spring boot 注释用于处理来自客户端的传入 put 请求。

注意:首先我们需要在我们的项目中建立 spring 应用程序。

Spring Initializr是一个基于 Web 的工具,使用它我们可以轻松生成 Spring Boot 项目的结构。它还为以元数据模型表达的项目提供了各种不同的功能。此模型允许我们配置 JVM 支持的依赖项列表。在这里,我们将使用 spring 初始化程序创建应用程序的结构。

因此,要做到这一点,请按如下顺序执行以下步骤:

步骤 1:转到 Spring Initializr

项目元数据

第 2 步:根据要求填写详细信息。对于此申请:

Project: Maven
Language: Java
Spring Boot: 2.2.8
Packaging: JAR
Java: 8
Dependencies: Spring Web

步骤3:单击“生成”将下载启动项目。

步骤 4:解压 zip 文件。现在打开合适的 IDE,然后转到文件->新建->从现有源创建项目->Spring-boot-app并选择 pom.xml。单击提示中的导入更改并等待项目同步。

文件导入

注意:在导入 Maven 项目窗口中,确保选择与创建项目时选择的 JDK 版本相同的版本。

步骤 5:转到src -> main -> java -> com.gfg.Spring.boot.app,创建一个名为 Controller 的 java 类并添加注释 @RestController。现在创建一个 put API,如下所示:

  • Java
// Annotation
@RestController
// Class
public class Controller {
    ArrayList<Integer>ans;
    // Constructor of this class
    Controller() {
        ans = new ArrayList<Integer>();
        ans.add(1);
        ans.add(2);
        ans.add(3);
    }
    // Annotation
    @PutMapping("/change/{id}")
 
    // Method
    void change(@PathVariable int id) {
 
        System.out.println(ans);
        ans.remove(id);
        ans.set(id, 45);
 
        System.out.println(ans);
    }
} 

此应用程序现已准备好运行。运行 SpringBootAppApplication 类并等待 Tomcat 服务器启动。

注意: Tomcat 服务器的默认端口是 8080,可以在 application.properties 文件中更改。

步骤 6:现在转到Postman并添加URL 地址并发出 put 请求,如下图所示:

邮差

输出:最后将在终端/ CMD上生成输出

[1, 2, 3] 
[1, 45, 3] 

相关文章:

Spring Boot教程之十一:获取Request 请求 和 Put请求

如何在 Spring Boot 中获取Request Body&#xff1f; Java 语言是所有编程语言中最流行的语言之一。使用 Java 编程语言有几个优点&#xff0c;无论是出于安全目的还是构建大型分发项目。使用 Java 的优点之一是 Java 试图借助类、继承、多态等概念将语言中的每个概念与现实世…...

计算机网络(二)

ip地址&#xff1a;11010010&#xff1a;01011110:00100100:00010100 子网掩码:11111111:11111111:11111111:11000000 and &#xff1a;11010010&#xff1a;01011110&#xff1a;00100100&#xff1a;00000000 210.94.36.0的下一站为R1 因为255为11111111 192为&#xff…...

如何在Python中进行数学建模?

数学建模是数据科学中使用的强大工具&#xff0c;通过数学方程和算法来表示真实世界的系统和现象。Python拥有丰富的库生态系统&#xff0c;为开发和实现数学模型提供了一个很好的平台。本文将指导您完成Python中的数学建模过程&#xff0c;重点关注数据科学中的应用。 数学建…...

JavaSE——类与对象(5)

一、抽象类 1.1为什么需要抽象类 父类的某些方法&#xff0c;不确定怎么实现&#xff0c;也不需要实现。 class Animal{public String name;public Animal(String name){this.name name;}public void eat()//这里实现了也没有意义{System.out.println("这是一个动物&am…...

Istio笔记01--快速体验Istio

Istio笔记01--快速体验Istio 介绍部署与测试部署k8s安装istio测试istio 注意事项说明 介绍 Istio是当前最热门的服务网格产品&#xff0c;已经被广泛应用于各个云厂商和IT互联网公司。企业可以基于Istio轻松构建服务网格&#xff0c;在接入过程中应用代码无需更改&#xff0c;…...

面试小札:Java如何实现并发编程

多线程基础 继承Thread类 定义一个类继承自 Thread 类&#xff0c;重写 run 方法。在 run 方法中编写线程要执行的任务逻辑。例如&#xff1a; java class MyThread extends Thread { Override public void run() { System.out.println("线程执行的任务…...

java-a+b 开启java语法学习

代码 &#xff08;ab) import java.util.Scanner; //导入 java.util包中的Scanner 类&#xff0c;允许读取键盘输入数据public class Main { // 创建一个公共类 Mainpublic static void main(String[] args) {//程序入口点&#xff0c;main方法Scanner scanner new Scanner(…...

RNN模型文本预处理--数据增强方法

数据增强方法 数据增强是自然语言处理&#xff08;NLP&#xff09;中常用的一种技术&#xff0c;通过生成新的训练样本来扩充数据集&#xff0c;从而提高模型的泛化能力和性能。回译数据增强法是一种常见的数据增强方法&#xff0c;特别适用于文本数据。 回译数据增强法 定义…...

maven 中<packaging>pom</packaging>配置使用

在 Maven 项目的 pom.xml 文件中&#xff0c; 元素用于指定项目的打包类型。默认情况下&#xff0c;如果 元素没有被显式定义&#xff0c;Maven 会假设其值为 jar。但是&#xff0c;当您设置 pom 时&#xff0c;这意味着该项目是一个 POM&#xff08;Project Object Model&…...

【Python中while循环】

一、深拷贝、浅拷贝 1、需求 1&#xff09;拷贝原列表产生一个新列表 2&#xff09;想让两个列表完全独立开&#xff08;针对改操作&#xff0c;读的操作不改变&#xff09; 要满足上述的条件&#xff0c;只能使用深拷贝 2、如何拷贝列表 1&#xff09;直接赋值 # 定义一个…...

【深度学习】服务器常见命令

1、虚拟环境的安装位置 先进入虚拟环境 which python2、升序查看文件内容 ls -ltr3、查看服务器主机空间使用情况 df -hdf -h .4、查看本地空间使用情况 du -sh ./*du -sh * | sort -nr5、查找并删除进程 # 查找 ps aux# 删除 kill -KILL pid6、查看服务器配置 lscpuuna…...

技术分析模板

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 例如&#xff1a; openAI 的 GPT 大模型的发展历程。 整体架构流程 提示&#xff1a;这里可以添加技术整体架构 例如&#xff1a; 在语言模型中&#xff0c;编码器和解码器…...

python:文件操作

一、文件路径 在Windows系统中&#xff0c;每个磁盘都有自己的根目录&#xff0c;用分区名加反斜杠来表示。我们定位文件的位置有两种方法&#xff0c;一种是绝对路径&#xff0c;另一种是相对路径。绝对路径是从根目录出发的路径&#xff0c;路径中的每个路径之间用反斜杠来分…...

Nginx和Apache有什么异同?

Nginx和Apache都是广泛使用的Web服务器软件&#xff0c;它们各自具有独特的特点和优势&#xff0c;适用于不同的应用场景。以下是关于Nginx和Apache的不同、相同以及使用区别的详细分析&#xff1a; 一、不同点 资源占用与并发处理能力&#xff1a; Nginx使用更少的内存和CPU资…...

泰州榉之乡全托机构探讨:自闭症孩子精细动作训练之法

当发现自闭症孩子精细动作落后时&#xff0c;家长们往往会感到担忧和困惑。那么&#xff0c;自闭症孩子精细动作落后该如何训练呢&#xff1f;今天&#xff0c;泰州榉之乡全托机构就来为大家详细解答。 榉之乡大龄自闭症托养机构在江苏、广东、江西等地都有分校&#xff0c;一直…...

Cookie跨域

跨域&#xff1a;跨域名&#xff08;IP&#xff09; 跨域的目的是共享Cookie。 session操作http协议&#xff0c;每次既要request&#xff0c;也要response&#xff0c;cookie在创建的时候会产生一个字符串然后随着response返回。 全网站的各个页面都会带着登陆的时候的cookie …...

qt QGraphicsPolygonItem详解

1、概述 QGraphicsPolygonItem是Qt框架中QGraphicsItem的一个子类&#xff0c;它提供了一个可以添加到QGraphicsScene中的多边形项。通过QGraphicsPolygonItem&#xff0c;你可以定义和显示一个多边形&#xff0c;包括其填充颜色、边框样式等属性。QGraphicsPolygonItem支持各…...

“harmony”整合不同平台的单细胞数据之旅

其实在Seurat v3官方网站的Vignettes中就曾见过该算法&#xff0c;但并没有太多关注&#xff0c;直到看了北大张泽民团队在2019年10月31日发表于Cell的《Landscap and Dynamics of Single Immune Cells in Hepatocellular Carcinoma》&#xff0c;为了同时整合两类数据&#xf…...

如何构建一个可扩展、全球可访问的 GenAI 架构?

你有没有尝试过使用人工智能生成图像&#xff1f; 如果你尝试过&#xff0c;你就会知道&#xff0c;一张好的图像的关键在于一个详细具体的提示。 我不擅长这种详细的视觉提示&#xff0c;所以我依赖大型语言模型来生成详细的提示&#xff0c;然后使用这些提示来生成出色的图像…...

QT实战--qt各种按钮实现

本篇介绍qt一些按钮的实现&#xff0c;包括正常按钮&#xff1b;带有下拉箭头的按钮的各种实现&#xff1b;按钮和箭头两部分分别响应&#xff1b;图片和按钮大小一致&#xff1b;图片和按钮大小不一致的处理&#xff1b;文字和图片位置的按钮 效果图如下&#xff1a; 详细实现…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...