PostMapping处理参数”/“

PostMapping这是Spring中的定义路由的注解,以前没有关注过这个注解的默认值,所以在实现的时候就显得不那么灵活。

问题描述

有一个路由是这么定义的:

1
@PostMapping("/")

没有实际的路由,只有一个”/“,这时候,我们可以使用@PostMapping的默认值来代替上面的写法:

1
@PostMapping

然后我们在访问的时候,什么也不用做修改,和上面那种写法的访问路由完全相同。

默认值

发现这个现象的时候,首先就去看了一下这个注解的默认值。

默认值是"",所以什么都不写就相当于@PostMapping("").这时我们访问这个方法的时候路由应该这么写:/XXX

多余的”/“

在将路由修改后,本应该将单元测试的访问路由一起修改的,但是我在第一遍进行单元测试的时候,并没有修改原来的路由:/XXX/。而单元测试依然通过。

所以在处理最后一个”/“的时候,在没有匹配的情况下,他会自动的将斜杠去掉。这就好像我们在浏览器中输入www.baidu.com/,这时候我们依然能访问的是www.baidu.com。Spring为我们将多余的斜杠去除了。

坚持原创技术分享,您的支持将鼓励我继续创作!