Spring 引导:@RequestMapping 优先级
Spring Boot: @RequestMapping Priority
我的Spring启动应用程序遇到如下问题:
我有两个@RequestMapping
:
@RequestMapping(value = "/{categorySlug:^[a-z0-9-]+$}/{slug:^[a-z0-9-]+$}")
public ModelAndView aTutorial(
@PathVariable(value = "categorySlug", required = false) String categorySlug,
@PathVariable(value = "slug") String slug) {
// (1)
}
和
@RequestMapping(value = "/questions/**")
public ModelAndView fix404() {
// (2)
}
我用(2)将404页面重定向到首页。
但是当我转到 url 时:https://w3stacks.com/questions/fix
,我想要它 (2) 但它请求在 (1) 中处理,由 /questions/fix
与 {categorySlug)/{slug}
.
那么在(2)上怎么办呢,或者说可以自定义@RequestMapping
与否之间的优先级吗?
谢谢。
您可以忽略 aTutorial
API 的 categorySlug
的 questions
字词。
像;
@RequestMapping(value = "/{categorySlug:^(?!questions)[a-z0-9-]+$}/{slug:^[a-z0-9-]+$}")
这样一来,您就不会在 aTutorial
API 中收到任何以 questions
开头的电话,例如 /questions/etc
,但也会忽略 /questionsCategory/etc
因此 fix404
端点将根据您的需要得到正确利用。
我的Spring启动应用程序遇到如下问题:
我有两个@RequestMapping
:
@RequestMapping(value = "/{categorySlug:^[a-z0-9-]+$}/{slug:^[a-z0-9-]+$}")
public ModelAndView aTutorial(
@PathVariable(value = "categorySlug", required = false) String categorySlug,
@PathVariable(value = "slug") String slug) {
// (1)
}
和
@RequestMapping(value = "/questions/**")
public ModelAndView fix404() {
// (2)
}
我用(2)将404页面重定向到首页。
但是当我转到 url 时:https://w3stacks.com/questions/fix
,我想要它 (2) 但它请求在 (1) 中处理,由 /questions/fix
与 {categorySlug)/{slug}
.
那么在(2)上怎么办呢,或者说可以自定义@RequestMapping
与否之间的优先级吗?
谢谢。
您可以忽略 aTutorial
API 的 categorySlug
的 questions
字词。
像;
@RequestMapping(value = "/{categorySlug:^(?!questions)[a-z0-9-]+$}/{slug:^[a-z0-9-]+$}")
这样一来,您就不会在 aTutorial
API 中收到任何以 questions
开头的电话,例如 /questions/etc
,但也会忽略 /questionsCategory/etc
因此 fix404
端点将根据您的需要得到正确利用。