最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring根據(jù)URL參數(shù)進(jìn)行路由的方法詳解

 更新時(shí)間:2017年12月01日 09:39:57   作者:木杉  
這篇文章主要給大家介紹了關(guān)于Spring根據(jù)URL參數(shù)進(jìn)行路由的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起來看看吧。

前言

本文主要介紹了關(guān)于Spring根據(jù)URL參數(shù)進(jìn)行路由的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí)價(jià)值,下面來一起看看詳細(xì)的介紹吧。

發(fā)現(xiàn)問題

最近在寫接口的時(shí)候發(fā)現(xiàn)一個(gè)問題,就是兩個(gè)REST接口的URL的path部分是一樣的,根據(jù)query傳入不同的參數(shù)來區(qū)分。

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

PUT /{bucketname}/{ objectname}

分塊上傳的接口是:

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

傳入partNumber和uploadId是一個(gè)接口,沒有傳入這兩個(gè)參數(shù)是另外一個(gè)接口,那Spring中要如何進(jìn)行路由設(shè)置呢?

一般我們?cè)O(shè)置路由都是@RequestMapping(value = "/xx", method = RequestMethod.GET) 。然后在方法簽名中可以通過@RequestParam注入?yún)?shù)。

但是直接通過注入不同的參數(shù)來實(shí)現(xiàn)區(qū)分是不行的,比如:

@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;
}

這樣會(huì)報(bào)錯(cuò):

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

解決方法

意思是重復(fù)注冊(cè)了,所以@RequestParam是不能用來作為路由依據(jù)的。

@RequestParam

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

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

實(shí)質(zhì)是將Request.getParameter() 中的Key-Value參數(shù)Map利用Spring的轉(zhuǎn)化機(jī)制ConversionService配置,轉(zhuǎn)化成參數(shù)接收對(duì)象或字段。

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

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

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java創(chuàng)建型設(shè)計(jì)模式之單例模式

    Java創(chuàng)建型設(shè)計(jì)模式之單例模式

    Java單例模式是一種設(shè)計(jì)模式,它確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局訪問點(diǎn)??梢允褂枚喾N方式實(shí)現(xiàn)單例模式,如餓漢式、懶漢式、雙重檢查鎖定、靜態(tài)內(nèi)部類、枚舉等,每種方式都有其優(yōu)缺點(diǎn),需要根據(jù)具體情況選擇使用
    2023-05-05
  • 利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能

    利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能

    這篇文章主要介紹了利用Java的Struts框架實(shí)現(xiàn)電子郵件發(fā)送功能,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • IDEA中設(shè)置Run Dashboard方式

    IDEA中設(shè)置Run Dashboard方式

    這篇文章主要介紹了IDEA中設(shè)置Run Dashboard方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 最長重復(fù)子數(shù)組 findLength示例詳解

    最長重復(fù)子數(shù)組 findLength示例詳解

    今天給大家分享一道比較常問的算法面試題,最長重復(fù)子數(shù)組 findLength,文中給大家分享解題思路,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友參考下吧
    2023-08-08
  • Java中MapStruct使用方法解析

    Java中MapStruct使用方法解析

    這篇文章主要介紹了Java中MapStruct使用方法解析,接受請(qǐng)求參數(shù)都會(huì)使用一個(gè)vo類,這個(gè)vo類里封裝了所有需要接受的參數(shù),然后對(duì)參數(shù)進(jìn)行業(yè)務(wù)邏輯處理,處理完后會(huì)持久化處理,?使用MapStruct可以快速幫你解決轉(zhuǎn)換工作,需要的朋友可以參考下
    2023-10-10
  • 一文掌握J(rèn)ava中的JWT

    一文掌握J(rèn)ava中的JWT

    這篇文章主要介紹了Java中的JWT,JWT的本質(zhì)就是一個(gè)字符串,它是將用戶信息保存到一個(gè)Json字符串中,然后進(jìn)行編碼后得到一個(gè)JWT?token,對(duì)JWT相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-06-06
  • Java實(shí)現(xiàn)http請(qǐng)求文件流對(duì)帶寬限速獲取md5值

    Java實(shí)現(xiàn)http請(qǐng)求文件流對(duì)帶寬限速獲取md5值

    文章介紹了如何在進(jìn)行HTTP請(qǐng)求下載大數(shù)據(jù)時(shí)處理帶寬限制和并發(fā)問題,通過使用緩沖區(qū)和限速邏輯,可以有效控制下載速度,避免掉包和數(shù)據(jù)丟失,核心公式基于帶寬和已下載字節(jié)數(shù)計(jì)算預(yù)期耗時(shí),并通過Thread.sleep()進(jìn)行動(dòng)態(tài)休眠補(bǔ)償,感興趣的朋友一起看看吧
    2025-02-02
  • SpringMVC項(xiàng)目訪問controller時(shí)候報(bào)404的解決

    SpringMVC項(xiàng)目訪問controller時(shí)候報(bào)404的解決

    這篇文章主要介紹了SpringMVC項(xiàng)目訪問controller時(shí)候報(bào)404的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解

    泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解

    這篇文章主要為大家介紹了泛型的類型擦除后fastjson反序列化時(shí)如何還原詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 如何計(jì)算Java對(duì)象占用了多少空間?

    如何計(jì)算Java對(duì)象占用了多少空間?

    在Java中沒有sizeof運(yùn)算符,所以沒辦法知道一個(gè)對(duì)象到底占用了多大的空間,但是在分配對(duì)象的時(shí)候會(huì)有一些基本的規(guī)則,我們根據(jù)這些規(guī)則大致能判斷出來對(duì)象大小,需要的朋友可以參考下
    2016-01-01

最新評(píng)論

台南县| 博兴县| 大丰市| 增城市| 睢宁县| 曲松县| 冀州市| 彰化县| 清苑县| 桃园市| 延吉市| 乌恰县| 景洪市| 平度市| 焉耆| 西丰县| 台中市| 日土县| 博爱县| 普定县| 广安市| 临湘市| 上栗县| 津市市| 林口县| 通化市| 白河县| 灵璧县| 张家口市| 宜丰县| 顺昌县| 广灵县| 肇东市| 乳源| 布尔津县| 明水县| 河北省| 乳山市| 东乡族自治县| 洪江市| 江华|