spring boot requestMapping @RequestMapping(value = "/{userId:\\d+}", method = RequestMethod.DELETE)

spring boot requestMapping @RequestMapping(value = "/{userId:\\d+}", method = RequestMethod.DELETE)

    @RequestMapping(value = "/{userId:\d+}", method = RequestMethod.DELETE)
    public void delete(@PathVariable Long userId) {
        try{
            this.authorService.delete(userId);
        }catch(Exception e){
            throw new RuntimeException("delete error");
        }
    }

任何人都知道我应该为这个定义“/{userId:\d+}”匹配什么url,你能给我一个例子吗,比如“/userid=1”,这样对吗?

我猜这个定义像这样 "/{userId:\d+}" ,在 url 中使用正则表达式来确保它传递一个数字 parameter.I 我不确定,如果有人知道的麻烦给个link学习学习,谢谢!

不,该表达式映射 /1 例如,所有数字。

The syntax {varName:regex} declares a URI variable with a regular expressions with the syntax {varName:regex} — e.g. given URL "/spring-web-3.0.5 .jar", the below method extracts the name, version, and file extension:

@GetMapping("/{name:[a-z-]+}-{version:\d\.\d\.\d}{ext:\.[a-z]+}")
public void handle(@PathVariable String version, @PathVariable String ext) {
    // ...
}

查看完整文档here

它将匹配任何数字。例如,

/1/11/123

/{userId:\d+} ===> 将/后的一位或多位数字映射到变量userId。
一个或多个数字的正则表达式是 \d+,但由于您将其用作字符串,因此需要使用另一个 \.

对其进行转义