# SpringBoot 对 RESTful 的支持

SpringBoot 对 RESTful 的支持本质上和 Spring MVC 是一样的。但是 SpringBoot 中由于没有 web.xml 配置文件,因此无法像 Spring MVC 那样去配置那个处理 PUT、PATCh、DELETE 请求的 Filter 。

不过 Springboot 自动配置了它们。

但是,有人反映因为 Filter 注册的优先级问题,导致 PUT、PATCH 请求还没有来得及被 FormContentFilter 处理,就被 Spring MVC 执行了参数绑定,而此时自然就获取不到任何请求参数。

这种情况下,可以通过提高 FormContentFilter 过滤器优先级提高来解决这个问题。但是,由于我们无法将 @Order 注解标注于 FormContentFilter 类的源码中,因此需要自定义一个 FormContentFilter 子类,并注册使用。

@Component
@WebFilter(urlPatterns = "/*", filterName = "putFilter")
@Order(Integer.MIN_VALUE)
// public class PutFilter extends HttpPutFormContentFilter {
public class PutFilter extends FormContentFilter {
}