在Web 应用中会涉及到大量的静态资源,例如:JS、CSS、HTML、图片等等。我们知道,Spring MVC 导入静态资源文件时,需要配置静态资源的映射;但在Spring Boot 中则不需要进行此项配置,因为 Spring Boot 已经默认完成了这一工作。
Spring Boot为什么提供三种静态资源映射的规则:
- WebJars映射
- 默认资源映射
- 静态首页(欢迎页)映射
在传统的web应用中,通常会使用大量的JS和CSS,例如:Jquery.js、Bootstrap.css等等,通常需要将这些web资源拷贝到Java Web 项目的 webapp 相应目录下进行管理,但是Spring Boot 项目是以 Jar 包的形式进行部署的,不存在webapp目录,这时候就需要通过Webjars将web资源以Jar包的形式进行提供,也就是将wen资源(js、css)打包成一个jar包,然后将这些Jar包部署到Maven中央仓库中进行统一管理,当Spring Boot 需要引入前端资源时,就可以访问Maven Central Repository Search 傲视,找到所需资源的pom依赖,然后将其导入到项目即可
示例:将web资源Jquery.js 引入进Spring Boot 项目中
1、首先在Maven Central Repository Search搜索Jquery依赖
2、然后找到Maven版本的依赖代码
3、然后引入jquery依赖,通过 mvn install 安装该依赖
Spring Boot 通过MVC 的自动配置类 WebMvcAutoConfiguration 为这些Webjars 前端资源提供了默认映射规则,通过查看源码得知,Webjars 的映射路径为 /webjars/** ,也就是所有访问 /webjars/** 的请求,都会去“classpath:/META-INF/resources/webjars/”查找 WebJars 前端资源。
4、然后启动Spring Boot 项目,浏览器器输入 http://localhost:8081/webjars/jquery/3.6.0/jquery.js 访问 jquery.js 静态资源
方式二:通过默认静态资源进行映射当访问项目中任意资源(即"/**")时,Spring Boot 会默认从以下路径中查找资源文件(优先级依次降低)
- classpath:/META-INF/resources/
- classpath:/resources/
- classpath:/static/
- classpath:/public/
这些路径又被称之为静态资源路径,当我们请求某个静态资源(例如:.html文件)时,Spring Boot 会先查找优先级高的文件夹,然后在查找优先级低的文件夹,直到找到指定的静态资源为止。
示例一:在项目/src/main/resources/static 目录中创建一个 hello.html文件,代码如下
Title
郭宝
然后启动Spring Boot 项目,浏览器访问: http://localhost:8081/hello.html ,结果如下图所示:
示例二:在项目/src/main/resources/static 目录中存放一张照片,然后启动Spring Boot 项目,浏览器访问:http://localhost:8081/test.png
浏览器访问:
方式三:静态首页(欢迎页)映射静态资源文件夹下的所有index.html 被称之为静态首页或者欢迎页,它们会被 /** 映射,也就是当我们访问 "/" 或者 "/index.html" 时,都会跳转到静态首页(欢迎页)
注意:访问静态首页或者欢迎页面时,其查找顺序也遵循默认静态资源的查找顺序,即先查找优先级高的目录,在查找优先级低的目录,直到找到 index.html 为止。
示例:1、在项目/src/main/resources/public 目录下创建一个 index.html 文件,代码如下:
Title
你好,欢迎访问郭宝的后台服务
2、然后启动Spring Boot项目, 浏览器访问 http://localhost:8081/ 或者 http://localhost:8081/index.html 结果如下图所示:



