Springboot Web开发静态资源处理下面,对Springboot的静态导入资源进行总结分析,方便后续对于web开发进行回顾和温习,无论我学习什么新的知识,我都会记录一下,因为不同的时间点上,我对知识的了解是不在一个维度的,所以记录一是为了查看回顾知识,二是可以记录当时我对某个知识点的理解。
- 一 、静态资源处理
- 两种静态资源映射规则
- 1、静态资源映射规则:通过webjars的方式
- 2、资源映射规则
- 自定义静态资源路径
- 二、首页
- 三、网页图标
Springboot最大的特点就是自动装配,提升开发者的开发效率,简化开发。
使用Springboot的开发步骤:
- 创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块的所有配置自动配置好
- 需要我们配置的部分配置写在配置文件中
- 专注编写业务代码,不需要考虑以前那样一大堆的配置了。
我们在web开发实践前,一定要把自动配置原理搞明白。
比如SpringBoot到底帮我们配置了什么?我们可以配置哪些内容?等
向容器中自动配置组件 : xxx Autoconfiguration
自动配置类,封装配置文件的内容:xxx Properties
一 、静态资源处理首先,我们回顾一下在java web中静态资源的导入的位置,我们会在webapp下面导入css、js、img、页面等静态资源。但是在Spring boot中,静态资源导入的位置也做了约定,下面我们通过源码来探究一下,知其然也知其所以然。
我们进入WebMvcAutoConfiguration类中,看到addResourceHandlers这个方法
点进去
我们去找staticPathPattern发现第二种映射规则 :/** , 访问当前的项目任意资源,它会去找 resourceProperties 的getStaticLocations()这个方法,这个方法有四种导入静态资源的目录。
总结一下
在pop.xml中引入jquery依赖
org.webjars jquery 3.5.1
我们在外部依赖中可以找到,并且可以通过http://localhost:8080/webjars/jquery/3.5.1/jquery.js来进行访问。
如果是我们自己定义的静态资源该怎么引入呢,通过上面的源代码分析,静态资源导入有四种目录
分别是
"classpath:/META-INF/resources/" "classpath:/resources/" "classpath:/static/" "classpath:/public/"
我们可以在resources根目录下新建对应的文件夹,都可以存放我们的静态文件,并且他们之间也存在优先级,就是相同文件名称的静态资源同时存在多个目录时,他是有先后顺序的。
经过测试,优先级为:resources > static(默认) > public
我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.properties中配置
spring.web.resources.static-locations=classpath:/cwy/
一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了,看上面的源代码因为他return了,下面的自动配置静态路径就不执行了。
二、首页关于springboot如何获取首页,我们继续看代码
我们点进去
欢迎页,静态资源文件夹下的所有 index.html 页面;被 /** 映射。
比如我访问 http://localhost:8080/ ,就会找静态资源文件夹下的 index.html
与其他静态资源一样,Spring Boot在配置的静态内容位置中查找 favicon.ico。如果存在这样的文件,它将自动用作应用程序的favicon。
1、关闭SpringBoot默认图标
#关闭默认图标 spring.mvc.favicon.enabled=false
2、自己放一个图标在静态资源目录下
3、清除浏览器缓存!刷新网页,发现图标已经变成自己的了!



