91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring根據URL參數進行路由的方法詳解

發布時間:2020-10-05 23:17:18 來源:腳本之家 閱讀:409 作者:木杉 欄目:編程語言

前言

本文主要介紹了關于Spring根據URL參數進行路由的相關內容,分享出來供大家參考學習價值,下面來一起看看詳細的介紹吧。

發現問題

最近在寫接口的時候發現一個問題,就是兩個REST接口的URL的path部分是一樣的,根據query傳入不同的參數來區分。

比如S3普通上傳接口是是:

PUT /{bucketname}/{ objectname}

分塊上傳的接口是:

PUT /{bucketname}/{objectname}?partNumber={partNumber}&uploadId={uploadId}

傳入partNumber和uploadId是一個接口,沒有傳入這兩個參數是另外一個接口,那Spring中要如何進行路由設置呢?

一般我們設置路由都是@RequestMapping(value = "/xx", method = RequestMethod.GET) 。然后在方法簽名中可以通過@RequestParam注入參數。

但是直接通過注入不同的參數來實現區分是不行的,比如:

@ResponseBody
@RequestMapping(value = "/xx", method = RequestMethod.GET)
public String get1(){
 return "get1";
}
@ResponseBody
@RequestMapping(value = "/xx", method = RequestMethod.GET)
public String get2(@RequestParam name){
 return "get2" + name;
}

這樣會報錯:

java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'DemoController_v01' method 
public java.lang.String com.nd.sdp.ndss.controller.v01.DemoController.get1()
to {[/demo/xx],methods=[GET]}: There is already 'DemoController_v01' bean method

解決方法

意思是重復注冊了,所以@RequestParam是不能用來作為路由依據的。

@RequestParam

用來處理Content-Type: 為 application/x-www-form-urlencoded編碼的內容。(Http協議中,如果不指定Content-Type,則默認傳遞的參數就是application/x-www-form-urlencoded類型)

RequestParam可以接受簡單類型的屬性,也可以接受對象類型。

實質是將Request.getParameter() 中的Key-Value參數Map利用Spring的轉化機制ConversionService配置,轉化成參數接收對象或字段。

@RequestMapping作為路由注解,除了常用的value字段用于設置url外,還提供了params參數,可以指定如何匹配url中query的參數。又幾種配置方法:

  • myParam=myValue匹配有myParam參數,并且等于myValue的url
  • myParam!=myValue匹配有myParam參數,并且不等于myValue的url
  • myParam匹配有myParam參數的url
  • !myParam匹配沒有myParam參數的url

這樣就可以很靈活的指定路由了。

而且@RequestMapping還提供了headers參數,可以讓我們根據Header的情況進行路由!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南投市| 钟祥市| 武夷山市| 溧阳市| 岳西县| 江源县| 富阳市| 河南省| 闽侯县| 旅游| 久治县| 基隆市| 独山县| 惠来县| 襄汾县| 西和县| 宁海县| 平凉市| 阿城市| 绥德县| 甘南县| 绥江县| 满洲里市| 上饶市| 苍山县| 六枝特区| 阿克苏市| 房产| 苏尼特右旗| 宣武区| 达拉特旗| 扬中市| 新巴尔虎右旗| 舞钢市| 大连市| 南汇区| 沙雅县| 楚雄市| 永川市| 漳平市| 安塞县|