当前位置: 首页 > news >正文

springboot 项目访问静态资源遇到的问题,WebMvcConfigurer和WebMvcConfigurationSupport

之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——img标签访问静态资源,代码如下

@Configuration
public class LocalPathWebMvcConfigurer extends WebMvcConfigurationSupport {/*** 在springboot项目中,允许浏览器访问指定本地文件** @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/img/**").addResourceLocations("file:///D:/exerciting/java/mall-picture/");super.addResourceHandlers(registry);}
}

这个方法是可行的,但会带来一个小问题。

问题:在项目中加入swagger-ui这种本身就带静态资源的依赖,它该怎么访问?

像这些本身就要访问静态资源的,它们一般是实现了WebMvcConfigurer,而不是继承WebMvcConfigurationSupport。

当我们用上面代码中的方法访问静态资源后,会发现你不能继续访问swagger-ui.html了,所以改进的做法是将自己要访问的静态资源也用实现WebMvcConfigurer中addResourceHandlers方法的方式重写,代码如下:

@Configuration
public class BaaJoyMallWebMvcConfigurer implements WebMvcConfigurer {@Autowiredprivate TokenToMallUserMethodArgumentResolver tokenToMallUserMethodArgumentResolver;/*** 在springboot项目中,允许浏览器访问指定本地文件,最好用实现WebMvcConfigurer的方法而不是继承WebMvcConfigurationSupport的方法重写* 因为如果像swagger-ui这种自带静态资源的,可能会因此访问不到** @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/goods-img/**").addResourceLocations("file:///D:/exerciting/java/baajoy-mall-springboot/src/main/resources/goods-img/");registry.addResourceHandler("/upload/**").addResourceLocations("file:///D:/exerciting/java/baajoy-mall-springboot/src/main/resources/upload/");}
}

当然两种方法都是可以的,至于有没有其他方法,还没有太多了解。

http://www.lryc.cn/news/279145.html

相关文章:

  • Nginx配置负载均衡实例
  • 【算法题】50. Pow(x, n)
  • K8S动态PV
  • 逆变器2(原理框图)
  • ERA5合集,使用ERA5得到GNSS站点的温度,气压,水汽压,Tm和PWV合集,可以求五个参数
  • c#让三个线程按照顺序执行
  • AWS Directory Service 开启ldaps
  • Seata 以 Nacos 为注册中心启动
  • Unity填坑-灯光烘焙相关
  • 【python】TCP测速程序
  • 新书速览|从零开始大模型开发与微调:基于PyTorch与ChatGLM
  • 边缘计算:连接实时数据的力量与未来发展之路
  • ZooKeeper 实战(四) Curator Watch事件监听
  • Spring Boot 构建工具插件
  • Java集成消息队列Kafka
  • 第十四章JSON
  • 0_项目git地址——正点原子minifly与crazyflie
  • php 字符串常用函数
  • Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(2)
  • FlinkOnYarn 监控 flink任务
  • C++内存管理机制(侯捷)笔记1
  • 【论文阅读】Non-blocking Lazy Schema Changes in Multi-Version
  • Rust 最新版1.75.0升级记
  • 使用 KubeSphere 与极狐GitLab 打造云原生持续交付系统
  • EasyExcel的追加写入(新增POI、CSV)
  • JetBrains 开发工具——免费教育许可申请流程
  • 打造高性价比小程序,轻松降低成本
  • mysql 索引优化查询
  • 跟着cherno手搓游戏引擎【4】窗口抽象、GLFW配置
  • Tomcat基础升华学习