使用Spring进行精确的RequestMapping

buf*_*low 7 java spring

我在春天有以下内容

@RequestMapping("/hello")
Run Code Online (Sandbox Code Playgroud)

但是Spring会自动为/ hello /和/hello.*添加映射.如何进行精确的URL匹配?

只有/你好应该工作,其他任何东西都应该404

zag*_*gyi 5

关闭后缀匹配(useSuffixPatternMatchRequestMappingHandlerMapping将解决您的问题,但是,如果<mvc:annotation-driven/>在您的配置中使用它(实际上不是手动连接所有必需的基础结构bean),实际上并不是那么容易。在这种情况下,定义其他类型的bean RequestMappingHandlerMapping不会有任何效果。

您有两种选择:

  1. 删除<mvc:annotation-driven/>将其扩展为等效的Bean定义集,可以在其中应用该useSuffixPatternMatch设置。

  2. 保持<mvc:annotation-driven/>原样,并使用此处描述的更简单的解决方法:https : //jira.springsource.org/browse/SPR-9371。基本上BeanPostProcessor,这会添加一个,它检索RequestMappingHandlerMapping由mvc命名空间创建的bean,并设置上述标记。

还有另外一个请求,要求更轻松地自定义RequestMappingHandlerMappingmvc命名空间创建的内容,而不必像上面那样使用hack。您可以考虑对此票进行投票。

  • spring 4 解决方案:&lt;mvc:annotation-driven&gt; &lt;mvc:path-matching suffix-pattern="false" /&gt; &lt;/mvc:annotation-driven&gt; (2认同)