继承WebMvcConfigurationSupport和实现WebMvcConfigurer区别
前言
搭建oss服务实现了文件上传, 文件路径获取, 文件流获取等基础功能
后来新增一个需求: 当外部请求打到oss服务时实现接口透传, 什么意思呢?
因为搭建的oss服务接口对外暴露的访问路径都是/oss开头的, 外部请求访问路径却是形如 192.168.1.234:8900/bypass/test/oss_file.sql (ip和端口是oss服务的ip和端口)
所以就想, 在controller层配置requestMapping为"/**" 同时自定义拦截器, 对上述需要透传的请求进行拦截, 通过httpClient向文件服务器发请求读取资源, 然后将读取的资源回写到response返回给调用方, 说白了透传就是指oss服务只是转一下手, 流程大致如下
oss服务中总共有1个controller1
controller1 /oss 处理192.168.1.234:8900/oss/import 等这类请求
此时为了处理非/oss开头的请求, 新增了一个controller2
controller2 /** 处理192.168.1.234:8900/bypass/test/oss_file.sql等非/oss开头的请求
添加拦截器单独处理非/oss开头的请求
没什么问题
然鹅, 需求来了, 需要集成swagger2, swagger2的访问路径一般都是ip:port/swagger-ui.html
因为上面controller2已经配置了资源请求/**, 所以swagger2的资源也会进入该controller, 导致swagger访问受影响, 真是个两难的问题, 去掉/**没法处理非/oss开头的请求, 加上/**无法访问swagger
百思不得其解, 搜到springboot如何让静态资源不走controller, 看到通过实现WebMvcConfigure可以做到, 看了自己代码是通过继承WebMvcConfigurationSupport, 改为实现WebMvcConfigurer后果然好使了!!!
那么问题来了, 这两者有什么联系和差异??
https://www.cnblogs.com/JonaLin/p/11633820.html
https://www.cnblogs.com/jrjrzivvv/p/12741203.html
感谢
https://www.zhihu.com/question/64294072/answer/366268460
作者:习惯沉淀
如果文中有误或对本文有不同的见解,欢迎在评论区留言。
如果觉得文章对你有帮助,请点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
扫码关注一线码农的学习见闻与思考。
回复"大数据","微服务","架构师","面试总结",获取更多学习资源!