Spring MVC+Boot配置:共存带.html后缀与无后缀URL控制器
解决方案
不用动现有控制器,只需要两步就能搞定:
1. 修改web.xml,给Spring MVC分发器新增精确URL映射
在现有映射*.html的<servlet-mapping>节点下方,添加一段专门针对第三方URL的映射:
<servlet-mapping> <servlet-name>spring-mvc-dispatcher</servlet-name> <url-pattern>/thrid_party_string</url-pattern> </servlet-mapping>
Servlet的匹配规则是精确匹配优先,所以这个无后缀的URL会直接被Spring MVC分发器接管,完全不会影响原有.html结尾的接口逻辑。
2. 新增独立控制器处理第三方请求
写一个全新的控制器类,完全不用触碰现有业务控制器:
@Controller public class ThirdPartyController { @RequestMapping("/thrid_party_string") @ResponseBody public String handleThirdPartyRequest() { // 这里写对接第三方的业务逻辑,返回需要的响应格式 return "第三方接口响应内容"; } }
如果需要返回JSON格式,直接把返回类型改成对应实体类,或者替换@Controller为@RestController即可。
方案优势
- 现有控制器的
.html后缀规则完全不受影响,原有业务请求正常流转 - 新增的精确映射仅拦截指定第三方URL,不会干扰其他请求
- 全程无需修改任何在用的业务控制器,完全符合限制要求
内容的提问来源于stack exchange,提问作者Alimul Isalm
相关产品推荐
相关产品推荐

