国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Controller接口地址還能這樣玩?

開發 前端
Controller映射地址允許通過正則表達式URL匹配,可以捕獲URL中的特定部分,作為參數傳遞給Controller方法,從而處理更廣泛的請求類型。

環境:SpringBoot3.2.5

1. 正則表達式的路徑

Controller映射地址允許通過正則表達式URL匹配,可以捕獲URL中的特定部分,作為參數傳遞給Controller方法,從而處理更廣泛的請求類型。這種方式提高了路由的靈活性和復用性,使得Web應用能夠更精確地響應客戶端的請求,每部分的語法格式為:

{varName:regex}

通過上面的正則表達式聲明 URI 變量。varName方法參數中的變量名,regex為正則表達式。如下完整示例:

@GetMapping("/{name:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{ext:\\.[a-z]+}")
public Object p1(@PathVariable String name, @PathVariable String version, @PathVariable String ext) {
  return String.format("%s-%s%s", name, version, ext)  ;
}

其中參數:name:[a-z-]+匹配由任意數量的小寫字母和/或破折號"-"組成的字符串,至少需要有一個這樣的字符。
version:\\d\\.\\d\\.\\d匹配三個數字,其中每兩個數字之間用一個點分隔。
ext:\\.[a-z]+匹配一個點字符后面跟著至少一個或多個小寫字母的字符串。

請求示例:

圖片圖片

2. URI路徑占位符

URI 路徑模式還可以嵌入 ${...} 占位符,這些占位符在啟動時通過使用 PropertySourcesPlaceholderConfigurer 針對本地、系統、環境和其他屬性源進行解析。例如,可以使用它根據某些外部配置對基本 URL 進行參數化,如下示例:

@GetMapping("${pack.uri}")
public Object uri() {
  // TODO
  return "uri" ;
}

在配置文件中定義pack.uri

pack:
  uri: /xxxooo

請求示例

圖片圖片

組合使用

@GetMapping("/api${pack.uri}")
public Object uri()

甚至你還可以使用SpEL表達式

@GetMapping("/api${pack.uri}/#{1+2}")
public Object uri()

請求示例:

圖片圖片

只要是合法的符合路徑格式的SpEL表達式都是支持的。

3. 類級別的路徑參數

通常通過/{xx}定義的路徑變量一般都是應用到具體的請求方法上,其實你還可以應用到類級別上,如下示例:

@RestController
@RequestMapping("/users/{type}")
public class PathController {
  private static final List<User> DATAS = ... ;
  @GetMapping("/single/{id}")
  public Object p1(@PathVariable Integer type, @PathVariable Long id) {
    return DATAS.stream().filter(u -> type == u.getType() && id == u.getId()).collect(Collectors.toList()) ;
  }
}

該示例在類上接收一個{type}的路徑參數,在方法參數中可以直接接收。

4. 后綴匹配

從5.3版本開始,Spring MVC默認情況下不再對以".*"結尾的路徑模式進行匹配,因此,如果將控制器映射到/person路徑,它也將隱式地映射到/person.*路徑。因此,路徑擴展不再用于解釋響應請求的內容類型(例如,/person.pdf、/person.xml等)。

說明:我們可以通過請求的后綴來確定給客戶端響應什么格式的內容。而此功能從5.2.4版本開始已經被聲明為過時了,從5.3開始默認不再進行模式的匹配。在6.0(具體哪個版本沒有去查證)開始你此項配置直接從配置屬性中刪除,但是你可以通過配置類的方式進行配置開啟此功能。接下來進行實例的講解。

由于我使用的SpringBoot版本是3.2.5對應的Spring MVC是6.1.6所以配置文件中不能開啟此項功能。

5.3.x版本通過配置開啟

spring:
  mvc:
    contentnegotiation:
      favor-path-extension: true

6.x版本通過配置類開啟

@Component
public static class PathWebMvcConfigurer implements WebMvcConfigurer {


  public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    // 開啟路徑后綴功能
    configurer.favorPathExtension(true) ;
  }
}

以上是不同版本開啟根據路徑后綴響應客戶端內容類型的方式。接下來進行實例代碼演示如何使用

接口定義

private static final List<User> DATAS = ... ;
@GetMapping("/{id}/fmt.*")
public Object p1(@PathVariable Long id) {
  return DATAS.stream().filter(u -> id == u.getId()).collect(Collectors.toList()) ;
}

這里的路徑通過.*模式進行匹配。接下來直接訪問

圖片圖片

這里以json為后綴,相應結果將以json格式放回。如果你希望xml格式,那么你需要引入包

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

上面的包引入后,就不需要做任何配置,容器啟動時會自動的注冊關于XML的格式轉換器。

圖片圖片

你也可以自定義格式內容,不過這需要你對HttpMessageConverter比較的了解。

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

2024-12-03 09:45:34

2020-11-16 13:38:31

PostMessage

2021-07-28 06:10:47

拖拽設計器 transmat

2021-09-05 07:55:37

前端Emoji 表情

2024-06-13 08:19:08

Controller接口參數

2018-12-12 11:30:54

JavaString字符串

2021-04-09 08:23:30

Css前端加載動畫

2024-01-30 09:21:29

CSS文字效果文字裝飾

2023-02-26 00:00:02

字符串分割String

2020-05-22 10:00:08

數據庫數據庫設計軟件設計

2023-01-30 08:46:20

GoGo1兼容性

2021-01-30 07:51:59

微信微信8.0騰訊

2022-10-31 08:47:21

人臉識別按鍵鍵盤

2019-11-08 10:48:07

Windows操作系統微信Windows 10

2025-09-05 07:42:19

Spring接口監控

2021-10-29 07:49:22

Spring事務管理

2016-09-23 15:36:53

Windows10開始菜單程序

2020-05-09 16:45:56

ping命令Linux

2020-09-14 11:26:54

BinlogCanal數據庫

2012-07-13 11:32:16

網絡出口
點贊
收藏

51CTO技術棧公眾號

美女av免费在线观看| 国产美女久久| 国产一区二区视频在线播放| 国产精品香蕉国产| 一区二区三区欧洲区| 亚洲欧美另类中文字幕| 国产盗摄在线观看| 欧美天天综合网| 中文字幕免费在线观看| 136国产福利精品导航| 久久久噜噜噜www成人网| 国产一区二区美女诱惑| 亚洲一区三区电影在线观看| 国产精品久久久久久久免费软件| 91久久精品一区二区别| 久久成人综合| 国产成人在线一区二区| 欧美91在线| 国模视频一区二区| 风间由美性色一区二区三区四区| 九九热这里只有精品免费看| 精品一区二区三区四区五区| 久久99亚洲热视| 国产精选久久| 午夜精品一区二区三区在线播放| 高清一区二区三区| 欧美亚洲国产成人精品| 亚洲三级精品| 国产精品视频一| 四虎国产精品免费观看| 成人免费在线网址| 国产精品mm| 国产欧美一区二区三区另类精品 | 秋霞一区二区| 91成人福利在线| 国产成人一区| 91在线免费看片| 亚洲激情精品| 杨幂一区欧美专区| 91蜜桃婷婷狠狠久久综合9色| 成人免费在线观看网站| 婷婷六月综合亚洲| caopeng在线| 中文字幕亚洲激情| 一个色免费成人影院| 99国产在线观看| 日韩精品电影一区亚洲| 国产91在线视频观看| 亚洲免费在线播放| 理论片午午伦夜理片在线播放| 亚洲欧美国产精品| 丝袜av一区| 欧美极品色图| 久久影院午夜论| 三级视频在线| 亚洲一区999| 操欧美老女人| 欧洲精品久久| 国产午夜精品久久| av大片在线观看| 国产亚洲欧洲黄色| 成人激情诱惑| 亚洲精品在线视频观看| 国产精品女人毛片| a级影片在线| 97免费在线视频| 久久精品网址| 美女张开让男人捅| 亚洲精品国产美女| 日韩av片子| 精品少妇在线视频| 91福利精品第一导航| 欧美视频在线视频精品| 99在线视频免费观看| 9人人澡人人爽人人精品| 羞羞视频在线免费看| 色综合伊人色综合网| 国内精品99| 天天干天天爽天天射| 日韩精品在线网站| 精品一区二区三区的国产在线观看| 日本成人性视频| 欧美日韩亚洲网| va天堂va亚洲va影视| 日本一区二区在线| 亚洲午夜精品久久久久久久久| 欧美成人app| 精品国产综合久久| 一区二区高清免费观看影视大全| 台湾成人免费视频| 欧美亚洲另类在线一区二区三区 | 精品国产百合女同互慰| 水蜜桃一区二区三区| 国产精品1区2区3区| 国产福利在线| 8x拔播拔播x8国产精品| 成人av在线资源网站| 最爽无遮挡行房视频在线| 国产精品网址在线| 国产日韩精品一区二区三区在线| www在线免费观看视频| 国产大片精品免费永久看nba| thepron国产精品| 182在线视频观看| 精品乱子伦一区二区三区| 亚洲国产日韩精品| 色天下一区二区三区| 欧美国产日韩在线播放| 性欧美lx╳lx╳| 91这里只有精品| 成人在线小视频| 国产香蕉一区二区三区在线视频| 欧美特黄一级| 激情伊人五月天| 日韩福利电影在线| 亚洲啪啪aⅴ一区二区三区9色| 欧美—级a级欧美特级ar全黄| 国产成人综合网| 91九色国产在线播放| 久久久久无码国产精品一区| 色综合激情五月| 成人激情免费视频| 无夜福利视频观看| 国产成人亚洲综合91| 中文成人综合网| 日本精品视频| 超碰97人人射妻| 美日韩在线视频| 国产人成一区二区三区影院| 伊人久久大香线蕉av超碰| 国产wwwxx| 国产成人精品久久亚洲高清不卡| 一区二区三区高清| 日韩精品久久久久久久电影99爱| 麻豆免费网站| 国产精品普通话| 五月天国产精品| 亚洲天堂黄色| 欧美1—12sexvideos| 在线观看欧美一区| 色香阁99久久精品久久久| 久久久噜噜噜久久中文字幕色伊伊| 精品国产亚洲一区二区在线观看 | 亚洲精品一区二区网址| 国内精品不卡在线| yw.尤物在线精品视频| 日韩免费高清在线| 日韩av电影在线播放| 欧美视频在线视频| 久久aⅴ国产紧身牛仔裤| 天堂在线中文网官网| 精品人妻一区二区三区四区在线 | 国产福利亚洲| 超碰av在线免费观看| 热久久视久久精品18亚洲精品| 香蕉成人啪国产精品视频综合网| 欧美色图麻豆| 国产在线88av| 免费大片在线观看| 国产欧美日韩亚洲精品| 91精品国产综合久久久久久久久久| 麻豆成人久久精品二区三区红| 日韩国产一二三区| 欧美高清xxxxxkkkkk| 精品一区日韩成人| 色妞在线综合亚洲欧美| 一区二区三区日韩精品| 男人的天堂亚洲在线| 天堂久久午夜av| 久久国产情侣| 亚洲 国产 日韩 综合一区| 久久九九全国免费精品观看| 亚洲一级电影视频| 日本一区中文字幕| 国产一区二区三区亚洲| 日本三级视频在线播放| 日本少妇高潮喷水视频| 成人精品视频99在线观看免费| 亚洲精品国产精品自产a区红杏吧| 亚洲国产精品国自产拍av| 亚洲精品二区三区| 五月天国产在线| 日本女优天堂99伊人| 日本在线视频一区| 91精品国产91久久久| 4438x亚洲最大成人网| 成人久久视频在线观看| 亚洲一级毛片| 精品福利在线| 五月天婷婷在线视频| 亚洲天堂网一区| 色狠狠久久av五月综合|| 性色av一区二区三区| 精品久久久久久久久久久久久久久久久| 国产精品免费免费| 美女视频黄 久久| 亚洲国产精品成人| 福利欧美精品在线| 欧美激情喷水| 免费av在线|