Spring 引导 MVC 请求映射覆盖静态资源

Spring Boot MVC request mapping overrides static resources

我想在 Spring 引导中使用休息控制器来处理所有这样的请求:“/{arg}”,除了“/sitemap.xml”。我怎样才能做到这一点?

您可以通过正则表达式在控制器级别指定您的请求映射并排除一些资源(例如 'excludeResourceA' 和 'excludeResourceB'):

@RestController
@RequestMapping(value = "/{arg:(?!sitemap.xml|excludeResourceA|excludeResourceB).*$}")
public class YourRestController {
    // your implementation
}

当然,您也可以在方法级别指定请求映射,使用与控制器路径匹配相关的相同正则表达式,如果您可以将方法签名中带有 @PathVariable("arg") String arg 的参数传递给方法主体需要它