gpt4 book ai didi

java - RequestMapping 中的路径优先级

转载 作者:行者123 更新时间:2023-11-30 11:20:27 28 4
gpt4 key购买 nike

我已经为此打开了一个问题 here.但我也想问一下 stackoverflow 的人。

@Controller
@RequestMapping("/xxx")
public class MyController {

@RequestMapping("/**")
public ModelAndView getPage() {
//some code
}

@RequestMapping("/**/yyy/")
public ModelAndView getPageSecond() {
//some code
}

@RequestMapping("/**/yyy/{pathVariable}")
public ModelAndView getPageThird(@PathVariable("pathVariable") Integer num) {
//some code
}

}

假设我们有一个像这样的简单 Controller ,我正在发送这些请求:

1) /xxx/aaa/bbb/yyy/ --> 好的,它将被映射到 getPageSecond 方法并完成他的工作。

2) /xxx/aaa/bbb/yyy/23 --> 我觉得肯定是用getPageThird方法映射的,奇怪的是Spring在抓此请求通过 getPage 方法。

我试图深入研究 Spring 代码以了解那里发生了什么,然后我找到了 AntPatternComparator。该比较器给出结果以对计数进行括号计数,取较小的一个进行最佳匹配。

为什么?第三个比其他的更具体,有什么问题吗?

最佳答案

您可以手动将您自己的 RequestMappingHandlerMapping 版本添加到您的应用程序上下文中,并使用 setPathMatcher(PathMatcher pathMatcher) 设置其 patternMatcher 属性自己的实现将纠正您遇到的问题。

关于java - RequestMapping 中的路径优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22707136/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com