当前位置: 首页 > 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; 详细实现…...

从绝圣弃智到少造机关,老子这一句放进 SAP HANA 开发里,讲的是把聪明收回到模型、数据和执行计划本身

在 SAP HANA 项目里,最容易让团队误判的场景,往往不是某个开发人员不会写 SQL,也不是不会建 Calculation View,而是大家太相信自己的聪明。一个销售分析报表慢了,开发人员立刻想写一段复杂的 SQLScript;一个库存可用量计算不准,团队又想加一层临时表;一个财务口径有争议…...

前端工程化:依赖管理最佳实践

前端工程化&#xff1a;依赖管理最佳实践 前言 依赖管理是前端工程化的基础&#xff01;如果你的项目依赖管理混乱&#xff0c;那你的项目就像一个堆满杂物的仓库&#xff0c;难以维护。今天我就来给大家讲讲前端依赖管理的最佳实践。 为什么需要依赖管理 版本控制&#xff1a;…...

C++异步日志系统

文章目录异步日志系统1. 项目背景2. 设计思路2.1 核心架构2.2 关键技术点3. 实现细节3.1 线程安全的日志队列 (LogQueue)3.2 动态格式化与回退机制 (formatMessage)3.3 自动化管理4. 接口说明日志级别 (LogLevel)核心方法5. 使用指南5.1 快速上手5.2 注意事项6. 总结7.Code异步…...

线性码电路优化:从理论到硬件实现

1. 线性码与电路合成基础线性码在数字通信和存储系统中扮演着至关重要的角色&#xff0c;它通过在原始数据中添加冗余信息来实现错误检测和纠正。这种编码方式的核心数学原理基于有限域上的线性代数运算&#xff0c;使得编码和解码过程可以通过高效的矩阵运算实现。在硬件实现层…...

2026年AI大模型接口中转站排行榜新鲜出炉!五大平台硬核数据对比,为开发者提供权威选型指南

发布机构&#xff1a;中国产业信息研究院 TechInsight AI评测实验室 发布日期&#xff1a;2026年3月28日 数据来源&#xff1a;72小时连续压测、万级QPS仿真、10万 真实请求样本、服务商后台脱敏数据 2026年&#xff0c;AI工业化实现全面落地&#xff0c;全球AI大模型接口中…...

从零到一:基于iSYSTEM winIDEA与IC5000的嵌入式程序烧写与调试实战指南

1. 环境准备&#xff1a;搭建你的嵌入式开发工作台 第一次接触iSYSTEM工具链时&#xff0c;我完全被各种专业术语搞懵了。后来才发现&#xff0c;只要把环境搭好&#xff0c;后面的操作就像拼乐高一样简单。这里我会手把手带你配置好winIDEA和IC5000调试器&#xff0c;避开那些…...

避坑指南:Quartus II 18.1中Platform Designer配置Nios II软核的5个关键细节与常见错误

Quartus II 18.1中Platform Designer配置Nios II软核的深度避坑指南 在FPGA开发中&#xff0c;Nios II软核处理器的配置看似简单&#xff0c;实则暗藏诸多细节陷阱。许多开发者在Platform Designer&#xff08;原QSYS&#xff09;中按部就班完成配置后&#xff0c;往往会遇到各…...

JetBrains IDE重置插件:终极免费解决方案告别30天试用期限制

JetBrains IDE重置插件&#xff1a;终极免费解决方案告别30天试用期限制 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在项目开发的关键时刻&#xff0c;突然被JetBrains IDE弹出的"试用期已到期…...

AIAgent服务降级总失效?用SITS2026定义的3类语义韧性指标重构你的容错策略

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AIAgent服务降级失效的根源诊断 AIAgent 服务在高并发或依赖组件异常时&#xff0c;常配置熔断与降级策略&#xff0c;但实践中频繁出现降级逻辑未触发、兜底响应缺失或返回错误码而非预设友好内容等问…...

AI工具搭建自动化视频生成输出审核

# AI工具搭建视频生成中的数据脱敏&#xff1a;一个Python开发者的实战笔记 做视频自动生成这件事&#xff0c;碰到的第一个坎往往不是技术选型&#xff0c;而是数据安全。特别是当视频里要展示真实用户数据的时候&#xff0c;总不能把用户的姓名、手机号、住址这些敏感信息直接…...