SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅

直接正文

Spring Boot本来是默认自动配置了HiddenHttpMethodFilter组件, 这个是毋庸置疑的, 但是(我)在学习SpringBoot的时候, 看的视频是SpringBoot1.5.9版本的, 我们都知道, 浏览器都是只默认支持 POST 和 GET 请求的, 但是 Restful 风格的 URL 有 DELETE 和 PUT 的形式, 当然, 如果前端在页面加上 也是可以的, 但是这要求服务端有支持这种解析的过滤器, 这就是 HiddenHttpMethodFilter 的作用了, 至于为什么SpringBoot v2.2.6 的 HiddenHttpMethodFilter 默认配置不生效, 我们来看两张源码图
SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅_第1张图片
![](https://img-blog.csdnimg.cn/202005271725042.png#pic_center在这里插入图片描述
关键: Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效
matchIfMissing=false这句话的意思就是如果没有在配置文件中配置的话就默认不生效, 所以解决办法有两:

  1. 在SpringBoot的Configuration类中加一个@Bean方法返回一个HiddenHttpMethodFilter 组件
  2. 在application配置文件中加入: spring.mvc.hiddenmethod.filter.enabled=true, 就生效了, 就可以访问
    SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅_第2张图片
    SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅_第3张图片
    SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅_第4张图片

你可能感兴趣的:(spring,boot,java,spring)