SpringBoot之静态资源访问
1.springboot访问静态资源的几种方式
(1)在src/main/resources/目录下创建
static文件夹
(2)在src/main/resources/目录下创建
resources文件夹
(3)在src/main/resources/目录下创建
public文件夹
(4)在src/main/resources/目录下创建
META-INF/resources文件夹
目录结构图:

访问方式:

不知道大家看到这里有没有注意我的目录结构在4个文件夹中我们都拥有相同名字的6.jpg图片,那么在springboot在这种特殊的情况访问的顺序是怎样的呢,优先级顺序/META-INF/resources>resources>static>public,感兴趣的可以自己试一下
看到这里我们会不会有一个疑问难道在springboot中我们想访问静态资源的时候必须以springboot创建指定名称文件夹来访问么,当然不是,下面向大家分享一个自定义文件夹访问静态资源的方式
(1):首先创建一个java类

创建一个java类继承WebMvcConfigurerAdapter类并且重写addResourceHandlers方法,参数引用ResourceHandlerRegistry类这个对象调用addResourceHandler以及addResourceLocations方法,从俩个方法名我们不难看出前者是提供资源访问路径而后者是本地项目路径,那到底是什么意思呢?下面举例说明一下:


从上面俩张图片大家可以看出本地项目目录对应的就是addResourceLocations这个方法中传递的url参数,addResourceHandler方法就是资源访问url,在我们访问test/4.jpg时springboot会为我们在本地项目中找到testpicture这个文件夹中的4.jpg

看完自定义访问静态资源不知道大家有没有猜到为什么springboot可以访问/META-INF/resources,resources,static,public这4个文件夹下的静态资源,并且直接访问图片名称即可。下面我们来看一下springboot中的源码:
(1)打开WebMvcAutoConfiguration类找到addResourceHandlers方法:

从图中我们可以看到首先将变量staticPathPattern赋值然后将获取的值赋给资源访问路径方法,下面我们看一下staticPathPattern的值为什么
(2)打开WebMvcProperties类我们可以找到以下代码:

从图中我们可以看到值为/**这也就解释了为什么springboot在访问静态资源的时候只访问资源啊名称即可。
(3)下面我们继续查看WebMvcAutoConfiguration类:

(4)打开ResourceProperties类我们可以看到以下俩段代码:


在CLASSPATH_RESOURCE_LOCATIONS[] 这个数组中我们可以看到
“classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”这4个属性,这就解释了为什么springboot可以直接访问1./META-INF/resources 2.resources 3.static 4.public这4个文件夹下的静态资源

SpringBoot之静态资源访问相关推荐

  1. SpringBoot之静态资源访问配置

    一.默认静态资源映射规则 Spring Boot 默认将 / 的所有访问映射到以下目录: classpath:/static classpath:/public classpath:/resource ...

  2. Spring Boot静态资源访问和配置全解析

    在web开发中,静态资源的访问时必不可少的,比如image.css.js等.SpringBoot对静态资源访问提供了很好的支持,使用其提供的基本默认配置基本可以满足开发需求,同时,又支持开发人员进行自 ...

  3. springboot 静态资源访问,和文件上传 ,以及路径问题

    springboot 静态资源访问: 这是springboot 默认的静态资源访问路径  访问顺序依次从前到后(http://localhost:8080/bb.jpg) spring.resourc ...

  4. 就SpringBoot+thymeleaf实现静态资源访问的实现

    就SpringBoot+thymeleaf实现静态资源访问的实现 露珠第一次接触SpringBoot,但是以前都是用的SpringMVC,于是乎在前后端分离开发的静态页面加载的方法上有所疑问,于是乎就 ...

  5. springboot设置静态资源不拦截的方法

    springboot设置静态资源不拦截的方法 springboot不拦截静态资源需配置如下的类: import org.springframework.context.annotation.Confi ...

  6. Spring Boot与Web开发简介||SpringBoot对静态资源的映射规则

    Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运 ...

  7. spring boot 整合web开发之文件上传、静态资源访问、异常处理、返回JSON数据

    目录 springboot 整合web开发 返回json数据 静态资源访问 文件上传 全局异常 1.返回json数据 springboot默认的是jackson-databind做为json处理器.也 ...

  8. Spring Boot 静态资源访问原理解析

    一.前言 springboot配置静态资源方式是多种多样,接下来我会介绍其中几种方式,并解析一下其中的原理. 二.使用properties属性进行配置 应该说 spring.mvc.static-pa ...

  9. SpringMVC REST 风格静态资源访问配置

    1 在web.xml中使用默认servlet处理静态资源,缺点是如果静态资源过多,则配置量会比较大,一旦有遗漏,则会造成资源无法正常显示或404错误. <!-- 静态资源访问控制 -->& ...

最新文章

  1. React 父组件给子组件传值,子组件接收
  2. java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...
  3. 基于MongoDb的S3实现
  4. 玩大数据期间碰到的一些问题总结
  5. 智能实验室服务器,阿里巴巴机器智能实验室线下智能团队三年工作总结
  6. oracle解锁用户
  7. 2013-09-16 构建C1000K的服务器(1) – 基础
  8. 《Java语言程序设计》(基础篇原书第10版)第十二章复习题答案
  9. Oracle效率提升
  10. 用计算机对人造卫星,人造卫星轨迹计算主要涉及计算机应用中的______
  11. python计算ROC曲线和面积AUC
  12. APScheduler如何设置任务不并发(即第一个任务执行完再执行下一个)?
  13. 【春秋招面试分享】讲一讲当时春秋招时做过的项目以及推荐几个项目+推荐面试突击的视频
  14. 国内最火的10款Java开源项目
  15. PKPM学习:悬挑板无法放置的问题
  16. C++ Programming language读书笔记
  17. 用requests的get检验电视直播源是否有效的方法
  18. 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录
  19. PyTorch的数学运算
  20. ETC卡PBOC操作

热门文章

  1. python无法打开_如何解决Windows命令行无法运行python文件?
  2. python输出矩阵的转置_Python 矩阵转置的几种方法小结
  3. matlab mandrill,MATLAB】MATLAB的自带数据及可生成数据的函数
  4. sh执行文件 参数传递_Shell脚本传参数方法总结
  5. HDU 4035 Maze
  6. 【bzoj4712】洪水
  7. 2017.10.23解题报告
  8. 字符串问题之 在有序但含有空的数组中查找字符串
  9. UVa 1354 天平难题 枚举二叉树
  10. 确认类是否可以在运行期使用