SpringBoot兼容SpringMVC带有.do后缀的请求

背景

MVC框架请求的都是.do后缀,但controller控制层拦截的是没有后缀的链接。如controller请求/111/222,当请求/111/222.do时,可以正常进入。当我们将存量一些旧工程(SpringMVC框架)升级到Springboot后,发现无法进入,此处我们针对这块进行最丝滑的适配。

版本信息

Springboot:2.7.17

方案

  • 1、请求方改造,将.do删除---除非该系统调用者很少,或者接口很少的情况
  • 2、提供方改造,基于过滤器或者拦截器,拦截到.do后,重定向。--不推荐,所有do请求都会发生重定向
  • 3、提供方改造,兼容.do请求---比较丝滑,推荐🌟🌟🌟🌟🌟

方案三详解

yaml增加后缀功能

yaml 复制代码
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
      use-suffix-pattern: true

编码侧

java 复制代码
/**
 * @author weipt
 * @description 受理.do请求,不发生302重定向
 * @date 2024/9/6 23:09
 */
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.mediaType(".do", MediaType.ALL);
    }
}

自测

  • 后端写个controller,拦截/111/222
  • 前端请求/111/222.do
  • 如果能进入,就代表ok

拓展

关于DispatcherServlet

​ 传统的MVC中,我们需要自定义DispatcherServlet,并设置拦截路径,比如*.do,但升级到Springboot后,启动的时候会默认创建DispatcherServlet,并拦截/**,所以我们需要再自定义DispatcherServlet,即使注册,日志中也会提示,这个大家可以观察

关于@EnableMVC注解

​ 我们已经升级到Springboot,该注解已经不需要,反而加上后,会导致一些配置失效,慎用。

帮人帮到底,送佛送到西

如果上述操作,无法解决你的问题,可以与我联系:

邮件地址:[email protected]

邮件标题:【问题方案咨询】xxxxx

相关推荐
依旧很淡定7 天前
05-SpringBoot3入门-整合SpringMVC(配置静态资源、拦截器)
springmvc·拦截器·静态资源
就改了14 天前
SpringMVC 跨域问题两种常用解决方案
java·springmvc
一弓虽16 天前
springmvc 框架学习
java·学习·spring·ssm·springmvc
字节源流20 天前
【SpringMVC】常用注解:@MatrixVariable
springmvc
想要打 Acm 的小周同学呀23 天前
SpringMVC执行的流程
springmvc·springmvc执行的流程
工一木子24 天前
【SpringMVC】SpringMVC的启动过程与原理分析:从源码到实战
mvc·springmvc·原理分析
岁岁岁平安1 个月前
SpringMVC学习(controller层加载控制与(业务、功能)bean加载控制、Web容器初始化配置类)(3)
java·学习·spring·mybatis·springmvc
岁岁岁平安1 个月前
SpringMVC学习(初识与复习Web程序的工作流程)(1)
java·spring·servlet·mybatis·springmvc·web
岁岁岁平安1 个月前
SpringMVC学习(入门案例思路及实现、Web容器初始化与SpringMVC配置类)(2)
java·spring·mvc·springmvc·idea
WangYaolove13141 个月前
java2025热点面试题之springmvc
java·springmvc