精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

是否還記得SpringMVC中的@MatrixVariable注解?

開發 前端
矩陣變量可以出現在任何路徑段中,每個變量用分號分隔,多個值用逗號分隔(例如/cars;color=red,green;year=2012)。還可以通過重復的變量名指定多個值(例如,color=red;color=green;color=blue)。

環境:SpringBoot3.0.5

1. 簡介

RFC 3986【https://datatracker.ietf.org/doc/html/rfc3986#section-3.3】討論了路徑段中的name-value對。在Spring MVC中,我們將它們稱為“矩陣變量”,但它們也可以稱為URI路徑參數。

矩陣變量可以出現在任何路徑段中,每個變量用分號分隔,多個值用逗號分隔(例如/cars;color=red,green;year=2012)。還可以通過重復的變量名指定多個值(例如,color=red;color=green;color=blue)。

如果期望URL包含矩陣變量,則控制器方法的請求映射必須使用URI變量來屏蔽變量內容,并確保請求可以成功匹配,而不依賴于矩陣變量的順序和存在。下面的例子使用了一個矩陣變量:

// GET /pets/42;q=11;r=22
@GetMapping("/pets/{petId}")
public void findPet(@PathVariable String petId, @MatrixVariable int q) {
  // petId == 42
  // q == 11
}

@MatrixVariable應用場景

  • 主要適用于需要在URI路徑中傳遞多個與路徑段相關的參數,并且希望保持URI清晰、語義化的情況下。
  • 一個資源需要通過多維度資源定位時,一個URI可能需要同時標識多個維度的信息。比如在一個圖片處理服務中,可能會通過顏色模式、分辨率等參數來定位特定版本的圖片資源。
/images/pic1.png;colors=rgb;resolution=high

2. 實戰案例

2.1 案例1 

@GetMapping("/m1/{id}")
public Object matrix1(@PathVariable("id") Long id, @MatrixVariable Integer q, @MatrixVariable String p) {
  return String.format("input, id: %d, q: %d, p: %s", id, q, p) ;
}

請求

圖片圖片

2.2 案例2

多個矩陣變量,在不同的路徑變量中定義

@GetMapping("/m2/{cateId}/a2/{artId}")
public Object matrix2(
    @PathVariable("cateId") Long cateId, 
    @MatrixVariable(pathVar = "cateId", name = "q") Integer q1, 
    @PathVariable("artId") Long artId, 
    @MatrixVariable(pathVar = "artId", name = "q") Integer q2) {
  return String.format("input, cateId: %d, q: %d, artId: %d, q: %s%n", 
      cateId, q1, artId, q2) ;
}

請求

圖片圖片

2.3 案例3

使用Map接收矩陣值

@GetMapping("/m3/{cateId}/a2/{artId}")
public Object matrix3(
    @PathVariable("cateId") Long cateId, 
    @MatrixVariable MultiValueMap<String, String> cateMap, 
    @PathVariable("artId") Long artId, 
    @MatrixVariable(pathVar = "artId") MultiValueMap<String, String> artMap) {
  return Map.of("cate", cateMap, "art", artMap) ;
}

請求

圖片圖片

注意:這里的a=1,2有多個值可以使用','分割。

2.4 案例4

當變量路徑之后沒有添加矩陣參數時,會報錯。

圖片圖片

我們可以通過配置,指定非必須活著設定默認值。

@GetMapping("/m2/{cateId}/a2/{artId}")
  public Object matrix2(
      ...,
      // 設置默認值
      @MatrixVariable(pathVar = "artId", name = "q", required = false, defaultValue = "999") Integer q2) {
    return String.format("input, cateId: %d, q: %d, artId: %d, q: %s%n", 
        cateId, q1, artId, q2) ;
  }

3. 實現原理

這里以上面的 案例2 講解。

3.1 路徑匹配存儲矩陣變量

public abstract class AbstractHandlerMethodMapping {
  protected HandlerMethod getHandlerInternal(HttpServletRequest request) throws Exception {
    HandlerMethod handlerMethod = lookupHandlerMethod(lookupPath, request);
  }
  protected HandlerMethod lookupHandlerMethod(String lookupPath, HttpServletRequest request) {
    handleMatch(bestMatch.mapping, lookupPath, request);
  }
}

beastMatch.mapping

圖片圖片

lookupPath

圖片圖片

public abstract class RequestMappingInfoHandlerMapping {
  protected void handleMatch(RequestMappingInfo info, String lookupPath, HttpServletRequest request) {
    extractMatchDetails(pprc, lookupPath, request);
  }
  private void extractMatchDetails(...) {
    // 將矩陣編碼存入到request對象中
    request.setAttribute(MATRIX_VARIABLES_ATTRIBUTE, result.getMatrixVariables());
  }
}

3.2 解析@MatrixVariable注解的參數

public class MatrixVariableMethodArgumentResolver {
  protected Object resolveName(...) throws Exception {
    // 從request中取出上一步存入的map集合
    Map<String, MultiValueMap<String, String>> pathParameters = (Map<String, MultiValueMap<String, String>>)
        request.getAttribute(HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);
    MatrixVariable ann = parameter.getParameterAnnotation(MatrixVariable.class);
    // 獲取注解配置的pathVar值
    String pathVar = ann.pathVar();
    if (!pathVar.equals(ValueConstants.DEFAULT_NONE)) {
      if (pathParameters.containsKey(pathVar)) {
        // 取出值
        paramValues = pathParameters.get(pathVar).get(name);
      }
    }
    // 返回數據
    return paramValues.get(0);
  }
}

以上本篇文章的全部內容,希望對你有所幫助。

完畢!!!

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2020-10-12 08:43:25

Java基礎知識

2012-06-26 09:14:08

OpenSolaris

2011-06-27 14:08:21

Linux歷史命令

2015-07-13 09:04:10

互聯網設備設備

2018-12-27 11:58:07

蘋果手機iPhone

2012-05-04 08:16:47

Windows XP

2021-05-05 14:00:25

QQ手機QQ移動應用

2015-07-02 14:00:04

高考查分深信服

2019-03-19 18:47:56

手機摩托羅拉諾基亞

2015-07-20 16:58:35

短信微信

2021-04-07 22:25:05

手機LG諾基亞

2015-04-21 14:04:35

iOS

2017-01-13 08:00:39

手機

2021-09-05 20:18:33

邊緣計算組成

2020-07-14 13:40:42

微軟開發AI

2017-10-09 11:21:09

安卓APPFlash

2020-02-18 15:59:51

計算機網絡中數據鏈路

2018-08-30 21:35:00

App StoreFacebook印象筆記

2022-11-28 20:01:19

Node.js?Deno

2019-05-22 17:55:36

瀏覽器 Chrome Google
點贊
收藏

51CTO技術棧公眾號

天天爽天天爽夜夜爽| 久久资源亚洲| 伊人在线视频观看| 亚洲国产高清在线观看| 亚洲国产一区二区在线播放| 久久久com| 中文字幕在线观看你懂的| 伊人久久大香线蕉综合四虎小说| 精品91自产拍在线观看一区| 免费裸体美女网站| 1区2区3区在线视频| www.亚洲人| 国产精品综合不卡av| 免费网站看av| 波多野结衣在线观看一区二区三区 | 午夜免费电影一区在线观看| a网站在线观看| 久久一区亚洲| 欧美日韩国产123| 欧美黄色一级生活片| 91精品短视频| 精品视频1区2区| 国产精品入口芒果| 日本中文字幕在线观看| 91视频xxxx| 亚洲综合在线做性| 这里只有久久精品视频| 最新成人av网站| 久久影视电视剧免费网站| 日韩一区二区a片免费观看| 一区二区网站| 欧美乱妇15p| 日本激情综合网| 国产精欧美一区二区三区蓝颜男同| 夜色激情一区二区| 人人妻人人澡人人爽精品欧美一区| 精品无人乱码| 99re这里只有精品首页| www国产亚洲精品| 亚洲天堂视频网| 日本午夜一本久久久综合| 欧美一区二区.| 国产成人精品一区二三区| 一区二区三区国产精华| www.亚洲人.com| 国产精品成人在线视频| 精品国产中文字幕第一页| 日韩风俗一区 二区| 日韩免费高清一区二区| 成人在线超碰| 亚洲第一av网站| 美女伦理水蜜桃4| 亚洲精品v亚洲精品v日韩精品| 欧美高清dvd| 在线免费看污网站| aa亚洲一区一区三区| 91精品国产综合久久婷婷香蕉| 青青草原成人网| 永久免费毛片在线播放| 午夜av一区二区三区| 国产精品专区在线| 亚洲精品mv| 91国产视频在线观看| 啊啊啊国产视频| 91精品xxx在线观看| 91成人免费在线视频| 成人3d动漫一区二区三区| 免费观看成人性生生活片 | 亚洲欧美久久久久| 亚洲狼人综合| 日韩女同互慰一区二区| 亚洲一区二区三区四区av| 欧美精品密入口播放| 亚洲午夜av久久乱码| 蜜桃av免费观看| 欧美电影《睫毛膏》| 日韩网站中文字幕| 亚洲视频在线一区| 看全色黄大色大片| 日韩精品卡一| 欧美视频免费在线观看| 凹凸日日摸日日碰夜夜爽1| 成人影院av| 欧美日韩亚洲综合一区二区三区 | 免费一级欧美片在线播放| 国产97免费视| 国产xxxxxx| 99久久精品国产导航| 日韩av一区二区三区美女毛片| 男女啪啪在线观看| 亚洲成人你懂的| 毛片av免费在线观看| 日韩专区视频网站| 亚洲第一福利网站| 日韩影视一区二区三区| 亚洲免费二区| 欧美在线激情视频| 91丨九色丨丰满| 岛国av在线一区| 日韩高清国产精品| 日本一本在线免费福利| 在线亚洲欧美专区二区| 色姑娘综合天天| 久久99国内| 久久99精品视频一区97| 看黄色一级大片| 丁香天五香天堂综合| 日韩视频在线播放| www.九色在线| 欧美巨大另类极品videosbest | 国产videos久久| 欧美国产亚洲精品久久久8v| 自拍偷拍第八页| 不卡av电影在线播放| 一道精品一区二区三区 | 色综合久久影院| 午夜视黄欧洲亚洲| 亚洲女人在线观看| 亚洲国产网址| 欧美精品国产精品日韩精品| 在线亚洲欧美日韩| 久久麻豆一区二区| www精品久久| 精品中文字幕一区二区三区四区 | 久热国产精品| 精品久久久久久亚洲| av免费在线观看网站| 欧美午夜精品电影| 91国模少妇一区二区三区| 欧美婷婷在线| 91香蕉视频在线下载| 日本激情在线观看| 91官网在线免费观看| av免费观看不卡| 伊人激情综合| 岛国一区二区三区高清视频| 老司机在线视频二区| 欧美日韩三级视频| 亚洲精品91在线| 视频一区二区三区中文字幕| 欧美不卡三区| 伊伊综合在线| 亚洲欧美制服中文字幕| 日韩毛片一区二区三区| 97se亚洲国产综合自在线观| 成人网站免费观看入口| av成人资源网| 国产69精品久久久久9| 日韩一级在线播放| 午夜日韩在线电影| 欧美色图亚洲激情| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品国产理论片免费| av在线视屏| 亚洲精品一区二区久| 国产www在线| 国产午夜亚洲精品不卡| 日韩一级理论片| 日韩综合一区| 亚洲伊人成综合成人网| 欧美人与牲禽动交com | 中文字幕在线播放| 欧美人体做爰大胆视频| 91香蕉一区二区三区在线观看| 国产又黄又大久久| 中文字幕在线中文| 国产精品17p| 青青青国产精品一区二区| 国产福利在线看| 欧美区一区二区三区| 538任你躁在线精品视频网站| 国产成人激情av| 高清在线观看免费| 欧美日韩中字| 91精品国产综合久久久久久丝袜 | 亚洲一区在线观看视频| 老司机免费视频| 日韩电影免费在线观看网站| 在线观看免费91| 风间由美中文字幕在线看视频国产欧美| 韩国19禁主播vip福利视频| 亚洲av成人精品日韩在线播放| 欧洲中文字幕精品| 国产av无码专区亚洲av毛网站 | 日本黄色小视频在线观看| 久久9热精品视频| 久久这里只有精品18| 免费一区二区| 亚洲字幕一区二区| 涩涩av在线| 久久在精品线影院精品国产| 无套内谢的新婚少妇国语播放| 欧美午夜精品理论片a级按摩| 国产亚洲自拍av| 欧美国产欧美综合| 亚洲精品久久一区二区三区777| 久久在线精品| 国产在线视频在线| 欧洲三级视频| 国产一区二区三区黄| 久久婷婷五月综合色丁香| 高清在线视频日韩欧美| 日本在线观看视频| 国产偷亚洲偷欧美偷精品| 国产男女无套免费网站| 色综合久久久久综合| 国产精品白嫩白嫩大学美女| 久久婷婷久久一区二区三区| 无码人妻一区二区三区在线视频| 久久中文字幕一区二区三区| 成年人网站国产| 午夜国产一区二区| 欧美在线播放一区| 天堂99x99es久久精品免费| 91久热免费在线视频| 无人区在线高清完整免费版 一区二| 欧美精品中文字幕一区| 91最新在线| 亚洲人成网站999久久久综合| 亚洲精品久久久久久久久久久久久久| 欧美三级电影在线看| 久久夜靖品2区| 亚洲综合在线五月| 国产成人自拍网站| 国产精品乱码久久久久久| 中文字幕一区二区人妻在线不卡| 国产成人精品综合在线观看 | avtt综合网| 亚洲最大的免费| 亚洲欧美久久精品| 国产精品久久久久久久久久新婚 | 欧美日韩电影在线播放| 免费观看日批视频| 欧美午夜电影在线| www.国产高清| 午夜欧美在线一二页| 久热这里只有精品在线| 亚洲精品免费电影| 2025国产精品自拍| 亚洲精品国产高清久久伦理二区| 婷婷激情四射网| 亚洲色图欧美偷拍| 久久高清内射无套| 亚洲男女毛片无遮挡| 欧美激情图片小说| 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区亚洲av性色| 18成人在线观看| 三级在线观看免费大全| 亚洲欧美国产三级| 欧美三级免费看| 一区二区三区免费看视频| 久久免费在线观看视频| 亚洲国产日韩综合久久精品| 四虎永久在线精品| 日韩欧美黄色动漫| 一区二区三区麻豆| 欧美日韩免费视频| 国产成人精品免费看视频| 精品国产一区二区在线观看| 欧美特级特黄aaaaaa在线看| 亚洲高清一区二| 精品欧美不卡一区二区在线观看| 亚洲图片欧洲图片av| 日本在线视频观看| 久久成人国产精品| wwwwxxxx在线观看| 欧美孕妇性xx| 欧美日韩免费电影| 91视频99| 一区二区三区视频免费观看| 色女孩综合网| 欧美一区综合| 久草热视频在线观看| 日韩精品电影在线观看| 91亚洲精品久久久蜜桃借种| 高清不卡一区二区在线| 污片免费在线观看| 国产女人18毛片水真多成人如厕 | 91麻豆精品91久久久久同性| www国产一区| 亚洲美女av在线播放| 在线a人片免费观看视频| 欧美疯狂xxxx大交乱88av| 手机在线观看av| 成人精品在线视频| 精品国产导航| 艳色歌舞团一区二区三区| 国产一区二区三区四区老人| 青青草原av在线播放| 激情综合五月婷婷| 97香蕉碰碰人妻国产欧美 | 国产一级片播放| 欧美在线综合视频| 成人免费视频国产免费麻豆| 国产亚洲欧洲在线| 美女尤物在线视频| 国产精品视频久久久| 卡通动漫国产精品| 黄色一级片网址| 日韩av网站免费在线| 成年女人免费视频| 国产精品的网站| 黄色在线免费观看| 日韩欧美高清一区| 在线免费看黄网站| 2023亚洲男人天堂| 亚洲精品黑牛一区二区三区| 品久久久久久久久久96高清| 国产综合亚洲精品一区二| 亚洲娇小娇小娇小| 久久亚洲私人国产精品va媚药| 欧美成人黄色网| 欧美日韩精品一区二区三区四区 | 国产a级一级片| 国产精品66部| 一起操在线播放| 欧美亚洲一区二区在线| 天堂在线中文资源| 欧美极品少妇xxxxⅹ免费视频| 日本a人精品| 日本三级中国三级99人妇网站| 黄色日韩精品| 在线观看视频你懂得| 国产精品久久午夜夜伦鲁鲁| 无码人妻av免费一区二区三区 | 任你弄在线视频免费观看| 国产免费一区视频观看免费 | 亚洲伊人精品酒店| 涩涩涩999| 丝袜亚洲另类欧美综合| 国产草草浮力影院| 亚洲一本大道在线| 亚洲精品一区二区口爆| 久国内精品在线| 日韩精品亚洲专区在线观看| 日本丰满少妇黄大片在线观看| 久久精品国产精品亚洲精品| youjizz亚洲女人| 欧美色图天堂网| 91ph在线| 91在线观看免费观看 | 久久亚洲国产精品成人av秋霞| 本网站久久精品| 亚洲欧洲精品一区二区| 麻豆精品新av中文字幕| 亚洲综合图片一区| 91.成人天堂一区| 黄网站视频在线观看| 91色在线观看| 欧美视频二区| 亚洲久久久久久| 色综合一区二区| 成人免费高清在线播放| 国产热re99久久6国产精品| 国产韩日影视精品| 永久免费看片在线观看| 亚洲福利视频一区| 神马精品久久| 国产精品国产福利国产秒拍| 日韩中文在线电影| 无码国产精品久久一区免费| 亚洲成av人片| 激情福利在线| 国产综合久久久久| 欧美日韩网址| 免费a级黄色片| 欧美日韩精品一区二区在线播放| 日韩伦理av| 欧美日产一区二区三区在线观看| 免费在线一区观看| 午夜剧场免费在线观看| 亚洲国产精久久久久久| 肉色欧美久久久久久久免费看| 亚洲精品二区| 国产 日韩 欧美大片| 亚洲 欧美 中文字幕| 色yeye香蕉凹凸一区二区av| 午夜视频在线观看精品中文| 女人天堂av手机在线| 国产精品久久久久久久久搜平片| www.国产免费| 日本高清视频精品| 久久久久久久久久久9不雅视频| 国产精品成人免费一区久久羞羞| 色综合天天做天天爱| 浪潮av一区| 欧美一二三区| 国产成人免费视频网站| 精品人妻一区二区三区潮喷在线 | 亚洲一区二区三区日本久久九| 国产午夜大地久久| 中文字幕制服丝袜成人av| 黄色片一区二区三区| 国产精品久久久久久av福利软件 | 日韩va在线观看| 午夜精品一区二区三区免费视频| 思思99re6国产在线播放| 国产日韩亚洲精品| 狠狠色狠狠色综合系列|