springmvc中的url模式匹配

使用与优先级

使用

以下是一些模式匹配的示例:

  • “/resources/ima?e.png” - 匹配路径段中的一个字符
  • “/resources/*.png” - 匹配路径段中的零个或多个字符
  • “/resources/**” - 匹配多个路径段
  • “/projects/{project}/versions” - 匹配路径段并将其【捕获为变量】
  • “/projects/{project:[a-z]+}/versions” - 使用正则表达式匹配并【捕获变量】

? 表示请求单个字符
* 零个或者多个字符
** 表示匹配多个字段

捕获的 URI 变量可以使用@PathVariable注解,示例例如:

@GetMapping("/owners/{ownerId}/pets/{petId}")
public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
    // ...
}

在类和方法中声明URL变量

@Controller
@RequestMapping("/owners/{ownerId}")
public class OwnerController {

    @GetMapping("/pets/{petId}")
    public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
        // ...
    }
}

优先级

匹配方式优先级
全路径匹配,例如:配置路由/a/b/c第一优先级
带有{}路径的匹配,例如:/a/{b}/c第二优先级
正则匹配,例如:/a/{regex:\d{3}}/c第三优先级
带有路径的匹配,例如:/a/b/第四优先级
带有**路径的匹配,例如:/a/b/**第五优先级

从源码的角度进行理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值