欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解SpringBoot中5種類型參數傳遞和json數據傳參的操作

 更新時間:2023年12月11日 09:03:04   作者:在下小吉.  
當涉及到參數傳遞時,Spring?Boot遵循HTTP協(xié)議,并支持多種參數傳遞方式,這些參數傳遞方式可以根據請求的不同部分進行分類,

當涉及到參數傳遞時,Spring Boot遵循HTTP協(xié)議,并支持多種參數傳遞方式。這些參數傳遞方式可以根據請求的不同部分進行分類。

  • 路徑參數(Path Parameters):
  • 路徑參數是指在URL路徑中的一部分,用于標識資源或指定操作。路徑參數通常以{}的形式出現在URL中,如/users/{id},其中id就是一個路徑參數。路徑參數可以在URL中動態(tài)地改變,從而實現對不同資源的操作。使用路徑參數時,Spring Boot使用@PathVariable注解將路徑參數綁定到方法參數上。
  • 查詢參數(Query Parameters):
  • 查詢參數通常作為URL的一部分,以?開始,以key=value的形式出現,多個參數之間使用&連接,如/users?id=1&name=John。查詢參數主要用于篩選或過濾資源。在Spring Boot中,可以使用@RequestParam注解將查詢參數綁定到方法參數上。請求體參數(Request Body Parameters):
  • 請求體參數是通過HTTP請求體中發(fā)送的數據,通常用于傳遞復雜結構的數據,如JSON、XML等。請求體參數可以包含多個字段,并且可以表示更為復雜的數據模型。在Spring Boot中,可以使用@RequestBody注解將請求體參數綁定到方法參數上。
  • 表單參數(Form Parameters):
  • 表單參數通常使用HTML表單提交的數據,可以通過application/x-www-form-urlencoded或multipart/form-data格式傳輸。表單參數與查詢參數類似,但是通常用于提交數據而不是進行篩選。在Spring Boot中,可以使用@RequestParam注解將表單參數綁定到方法參數上。
  • 請求頭參數(Request Header Parameters):
  • 請求頭參數包含在HTTP請求的頭部信息中,可以用于傳遞附加的元數據,如鑒權信息、用戶代理等。在Spring Boot中,可以使用@RequestHeader注解將請求頭參數綁定到方法參數上。

使用理論進行講解時,我們可以了解這些參數傳遞方式的原理和用途。根據HTTP協(xié)議的規(guī)范和Spring Boot的設計,開發(fā)人員可以選擇合適的參數傳遞方式來滿足業(yè)務需求。這些參數傳遞方式在RESTful API開發(fā)中非常常見,可以用于處理各種場景下的數據傳輸。

普通參數

我們在UserController類中寫入這一段代碼

 @RequestMapping("/commonParamDifferentname")
    @ResponseBody
    public String commonParamDifferentName(@RequestParam("name") String userName,int age){
        System.out.println("普通參數傳遞 userName ==> "+userName);
        System.out.println("普通參數傳遞 age ==> "+age);
        return "{'module':'common param different name'}";
    }

在這里插入圖片描述

接收成功

在這里插入圖片描述

POJO參數

我們在User類中寫入這一段代碼

package com.example.domain;

public class User {
    private String name;
    private int age;

    private Address address;


    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address=" + address +
                '}';
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

我們在UserController類中寫入這一段代碼

//POJO參數:請求參數與形參對象中的屬性對應即可完成參數傳遞
    @RequestMapping("/pojoParam")
    @ResponseBody
    public String pojoParam(User user){
        System.out.println("pojo參數傳遞 user ==> "+user);
        return "{'module':'pojo param'}";
    }

在這里插入圖片描述

運行成功

在這里插入圖片描述

嵌套pojo參數

適用于下面這種,可以反復寫

在這里插入圖片描述

我們在Address類中寫入這一段代碼

package com.example.domain;
public class Address {
    private String province;
    private String city;

    @Override
    public String toString() {
        return "Address{" +
                "province='" + province + '\'' +
                ", city='" + 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;
    }
}

在UserController里面寫入這一段代碼

  @RequestMapping("/pojoContainPojoParam")
    @ResponseBody
    public String pojoContainPojoParam(User user){
        System.out.println("pojo嵌套pojo參數傳遞 user ==> "+user);
        return "{'module':'pojo contain pojo param'}";
    }

繼續(xù)測試

在這里插入圖片描述

運行成功

在這里插入圖片描述

數組參數

@RequestMapping("/arrayParam")
    @ResponseBody
    public String arrayParam(String[] likes){
        System.out.println("數組參數傳遞 likes ==> "+ Arrays.toString(likes));
        return "{'module':'array param'}";
    }

在這里插入圖片描述

在這里插入圖片描述

運行成功

在這里插入圖片描述

集合參數

@RequestMapping("/listParam")
    @ResponseBody
    public String listParam(@RequestParam List<String> likes){
        System.out.println("集合參數傳遞 likes ==> "+ likes);
        return "{'module':'list param'}";
    }

在這里插入圖片描述

在這里插入圖片描述

運行成功

在這里插入圖片描述

json數據傳參

我們在SpringMvcConfig里面加入這一段代碼@EnableWebMvc,開啟json數據自動轉換

在這里插入圖片描述

json格式

我們找到上面 集合參數 的代碼,把@RequestParam修改為@RequestBody

   @RequestMapping("/listParamForJson")
    @ResponseBody
    public String listParamForJson(@RequestBody List<String> likes){
        System.out.println("list common(json)參數傳遞 list ==> "+likes);
        return "{'module':'list common for json param'}";
    }

在這里插入圖片描述

這里選擇json,在下面寫入數據

在這里插入圖片描述

發(fā)現可以運行成功

在這里插入圖片描述

嵌套json格式

@RequestMapping("/pojoParamForJson")
    @ResponseBody
    public String pojoParamForJson(@RequestBody User user){
        System.out.println("pojo(json)參數傳遞 user ==> "+user);
        return "{'module':'pojo for json param'}";
    }

在這里插入圖片描述

運行成功

在這里插入圖片描述

集合格式

@RequestMapping("/listPojoParamForJson")
    @ResponseBody
    public String listPojoParamForJson(@RequestBody List<User> list){
        System.out.println("list pojo(json)參數傳遞 list ==> "+list);
        return "{'module':'list pojo for json param'}";
    }

如果報錯,重啟一下就好了

在這里插入圖片描述

在這里插入圖片描述

運行成功

在這里插入圖片描述

以上就是詳解SpringBoot中5種類型參數傳遞和json數據傳參的操作的詳細內容,更多關于SpringBoot類型傳參和json傳參的資料請關注腳本之家其它相關文章!

相關文章

  • Java中日期與時間的處理及工具類封裝詳解

    Java中日期與時間的處理及工具類封裝詳解

    在項目開發(fā)中免不了有對日期時間的處理,但Java中關于日期時間的類太多了,本文就來介紹一下各種類的使用及我們項目中應該怎么選擇吧
    2023-07-07
  • 一文詳解前端和后端的數據是如何連接的(基于Spring?Boot、Django或Node.js)

    一文詳解前端和后端的數據是如何連接的(基于Spring?Boot、Django或Node.js)

    這篇文章主要介紹了前端和后端的數據是如何連接的相關資料,文中通過示例介紹的非常詳細,舉例講解的是基于Spring?Boot、Django或Node.js,需要的朋友可以參考下
    2025-01-01
  • Spring Cloud中配置客戶端示例詳解

    Spring Cloud中配置客戶端示例詳解

    這篇文章主要介紹了Spring Cloud中配置客戶端的相關知識,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Java?定時任務技術趨勢詳情

    Java?定時任務技術趨勢詳情

    這篇文章主要介紹了Java?定時任務技術趨勢詳情,定時任務是每個業(yè)務常見的需求,比如每分鐘掃描超時支付的訂單,每小時清理一次數據庫歷史數據,每天統(tǒng)計前一天的數據并生成報表等,下文更多相關資料,需要的小伙伴可以參考一下
    2022-05-05
  • java多媒體文件編碼 處理工具類代碼實例

    java多媒體文件編碼 處理工具類代碼實例

    這篇文章主要介紹了java多媒體文件編碼 處理工具類使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Spring?Boot+RabbitMQ?通過fanout模式實現消息接收功能(支持消費者多實例部署)

    Spring?Boot+RabbitMQ?通過fanout模式實現消息接收功能(支持消費者多實例部署)

    這篇文章主要介紹了Spring?Boot+RabbitMQ?通過fanout模式實現消息接收(支持消費者多實例部署),本文通過案例場景分析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 淺談Mybatis版本升級踩坑及背后原理分析

    淺談Mybatis版本升級踩坑及背后原理分析

    這篇文章主要介紹了淺談Mybatis版本升級踩坑及背后原理分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • java中CompletableFuture異步執(zhí)行方法

    java中CompletableFuture異步執(zhí)行方法

    本文主要介紹了java中CompletableFuture異步執(zhí)行方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Java數據結構之位圖的簡單實現和使用

    Java數據結構之位圖的簡單實現和使用

    位圖,?是一種非常常見的結構,?它使用每個二進制位來存放一個值的狀態(tài),?就類似于?Java?當中?HashSet?存儲元素的功能。本文主要來介紹一下位圖的簡單實現和使用,需要的可以參考一下
    2023-05-05
  • Java中的JSONObject使用方法和常用操作

    Java中的JSONObject使用方法和常用操作

    本文詳細介紹了Java中JSONObject的使用方法,包括創(chuàng)建、基本操作、高級特性和錯誤處理,通過示例代碼和解釋,幫助開發(fā)者更好地理解和使用JSONObject來處理JSON數據,感興趣的朋友一起看看吧
    2025-02-02

最新評論