zoukankan      html  css  js  c++  java
  • 继承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

  • 相关阅读:
    TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
    ZeroMQ使用汇总
    C/C++ 笔试、面试题目大汇总
    Caffe+Windows 环境搭建收集
    轻松看懂机器学习十大常用算法
    Caffe学习系列——工具篇:神经网络模型结构可视化
    深度神经网络可视化工具集锦
    MIT一牛人对数学在机器学习中的作用给的评述
    A Full Hardware Guide to Deep Learning
    Caffe上手教程
  • 原文地址:https://www.cnblogs.com/yadongliang/p/13491860.html
Copyright © 2011-2022 走看看