首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年09月07日 20:55

背景

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

版本信息

Springboot:2.7.17

方案

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

方案三详解

yaml增加后缀功能

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);
    }
}

自测

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

拓展

关于DispatcherServlet

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

关于@EnableMVC注解

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

帮人帮到底,送佛送到西

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

邮件地址:weipingtao@qq.com

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

From:https://www.cnblogs.com/weipt0106/p/18402210
本文地址: http://shuzixingkong.net/article/1821
0评论
提交 加载更多评论
其他文章 别让代码愁白头发!15 个 Python 函数拯救你的开发生活
在 Python 世界里,有一些宝藏函数和模块,它们可以让你编程更轻松、代码更高效。这篇文章将带你一一认识这些神器,让你的开发生活瞬间轻松不少! 1. all - 检查所有元素是否满足条件 功能介绍 all 函数用于检查可迭代对象中的所有元素是否都满足给定的条件。如果可迭代对象为空,则返回 True
ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成
小白可无副作用服用。本文主要介绍了 ComfyUI 中 ControlNet 的基本使用,通过姿态控制和局部重绘两个示例讲解了相关节点的使用。
ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成 ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成 ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成
代码整洁之道--读书笔记(4)
代码整洁之道 简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。 本书适合所有程序员阅读,
代码整洁之道--读书笔记(4) 代码整洁之道--读书笔记(4)
【Azure Developer】上手 The Best AI Code "Cursor" : 仅仅7次对话,制作个人页面原型,效果让人惊叹!
AI Code 时代早已开启,自己才行动。上手一试,让人惊叹。借助这感叹的情绪,把今天操作Cursor的步骤记录下来,也分享给大家。 推荐大家上手一试,让你改变! 准备阶段 下载 Cursor(https://www.cursor.com/),点击右上角“Download”下载exe安装文件。 安装
【Azure Developer】上手 The Best AI Code "Cursor" : 仅仅7次对话,制作个人页面原型,效果让人惊叹! 【Azure Developer】上手 The Best AI Code "Cursor" : 仅仅7次对话,制作个人页面原型,效果让人惊叹! 【Azure Developer】上手 The Best AI Code "Cursor" : 仅仅7次对话,制作个人页面原型,效果让人惊叹!
C#自定义控件—旋转按钮
C#用户控件之旋转按钮 按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关键节点】 No.1 获取中心坐标,思考要绘制图形的相对坐标、宽度、高度; No.2 更改坐标系原点,以此原点
C#自定义控件—旋转按钮 C#自定义控件—旋转按钮 C#自定义控件—旋转按钮
一步一步将PlantUML类图导出为自定义格式的XMI文件
一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08 PlantUML官网: https://plantuml.com/zh/ PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f5488
数据包格式
目录前言请求数据格式请求行请求方法请求头AcceptRefererUser-AgentHOSTX_FORWARDED_FORContent-TypeContent-LengthTransfer-EncodingCookieConnectionAccept-EncodingAccept-Languag
数据包格式 数据包格式
Argo CD初体验
什么是 Argo CD? Argo CD 是一个声明式的 GitOps 持续交付工具,用于 Kubernetes 集群。它通过持续监控 Git 仓库中的 Kubernetes 资源配置文件,将这些配置自动应用到指定的 Kubernetes 集群中,确保集群的实际状态与仓库中的配置保持一致。Argo