SpringBoot之静态资源访问
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之静态资源访问相关推荐
- SpringBoot之静态资源访问配置
一.默认静态资源映射规则 Spring Boot 默认将 / 的所有访问映射到以下目录: classpath:/static classpath:/public classpath:/resource ...
- Spring Boot静态资源访问和配置全解析
在web开发中,静态资源的访问时必不可少的,比如image.css.js等.SpringBoot对静态资源访问提供了很好的支持,使用其提供的基本默认配置基本可以满足开发需求,同时,又支持开发人员进行自 ...
- springboot 静态资源访问,和文件上传 ,以及路径问题
springboot 静态资源访问: 这是springboot 默认的静态资源访问路径 访问顺序依次从前到后(http://localhost:8080/bb.jpg) spring.resourc ...
- 就SpringBoot+thymeleaf实现静态资源访问的实现
就SpringBoot+thymeleaf实现静态资源访问的实现 露珠第一次接触SpringBoot,但是以前都是用的SpringMVC,于是乎在前后端分离开发的静态页面加载的方法上有所疑问,于是乎就 ...
- springboot设置静态资源不拦截的方法
springboot设置静态资源不拦截的方法 springboot不拦截静态资源需配置如下的类: import org.springframework.context.annotation.Confi ...
- Spring Boot与Web开发简介||SpringBoot对静态资源的映射规则
Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运 ...
- spring boot 整合web开发之文件上传、静态资源访问、异常处理、返回JSON数据
目录 springboot 整合web开发 返回json数据 静态资源访问 文件上传 全局异常 1.返回json数据 springboot默认的是jackson-databind做为json处理器.也 ...
- Spring Boot 静态资源访问原理解析
一.前言 springboot配置静态资源方式是多种多样,接下来我会介绍其中几种方式,并解析一下其中的原理. 二.使用properties属性进行配置 应该说 spring.mvc.static-pa ...
- SpringMVC REST 风格静态资源访问配置
1 在web.xml中使用默认servlet处理静态资源,缺点是如果静态资源过多,则配置量会比较大,一旦有遗漏,则会造成资源无法正常显示或404错误. <!-- 静态资源访问控制 -->& ...
最新文章
- React 父组件给子组件传值,子组件接收
- java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...
- 基于MongoDb的S3实现
- 玩大数据期间碰到的一些问题总结
- 智能实验室服务器,阿里巴巴机器智能实验室线下智能团队三年工作总结
- oracle解锁用户
- 2013-09-16 构建C1000K的服务器(1) – 基础
- 《Java语言程序设计》(基础篇原书第10版)第十二章复习题答案
- Oracle效率提升
- 用计算机对人造卫星,人造卫星轨迹计算主要涉及计算机应用中的______
- python计算ROC曲线和面积AUC
- APScheduler如何设置任务不并发(即第一个任务执行完再执行下一个)?
- 【春秋招面试分享】讲一讲当时春秋招时做过的项目以及推荐几个项目+推荐面试突击的视频
- 国内最火的10款Java开源项目
- PKPM学习:悬挑板无法放置的问题
- C++ Programming language读书笔记
- 用requests的get检验电视直播源是否有效的方法
- 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录
- PyTorch的数学运算
- ETC卡PBOC操作