MVC框架请求的都是.do后缀,但controller控制层拦截的是没有后缀的链接。如controller请求/111/222,当请求/111/222.do时,可以正常进入。当我们将存量一些旧工程(SpringMVC框架)升级到Springboot后,发现无法进入,此处我们针对这块进行最丝滑的适配。
Springboot:2.7.17
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
use-suffix-pattern: true
/**
* @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);
}
}
传统的MVC中,我们需要自定义DispatcherServlet,并设置拦截路径,比如*.do,但升级到Springboot后,启动的时候会默认创建DispatcherServlet,并拦截/**,所以我们需要再自定义DispatcherServlet,即使注册,日志中也会提示,这个大家可以观察
我们已经升级到Springboot,该注解已经不需要,反而加上后,会导致一些配置失效,慎用。
如果上述操作,无法解决你的问题,可以与我联系:
邮件地址:weipingtao@qq.com
邮件标题:【问题方案咨询】xxxxx