欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot入门学习笔记十(SpringBoot开发Web项目)

程序员文章站 2022-06-12 19:28:29
...

版权声明:本文为 小异常 原创文章,非商用*转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/103261346







通过前几章我们已经了解,Spring Boot 项目其实就是一个 Jar包 ,所以 静态资源(html、css、js等) 就不再存放到 webapps目录 中了。Spring Boot 中早已规定好了默认的 静态资源目录,我们如果不想遵守这个 “约定(或习惯)”,也可以自己进行配置。

我们之前在项目中引入 静态资源 时,是将这些资源下载并手工放入到 webapps目录 中,而 Spring Boot 是将这些 静态资源 直接通过 Jar包 的形式(Maven依赖)引入到项目中。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)


一、引入静态资源

根据源码得知: Spring Boot 项目用来存放 静态资源目录 的路径 是通过 WebMvcAutoConfiguration类 中的 addResourceHandlers方法 来指定的。即 webjars目录 就是用来存放 静态资源 的目录。

1、方式一

我们可以将自己写好的 静态资源(html、css、js等) 打成 Jar包,然后引入到项目中(和引入 jquery 类似)。但这个方式显然很麻烦,固不推荐大家使用。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)


2、方式二

Spring Boot 中早有约定, 它将一些目录 设置成了专门用来存放 静态资源的目录,我们只需要将 静态资源 直接放入这些目录即可。

根据源码得知:在 ResourceProperties类中 定义好了 四个 静态资源目录 ,分别是:

  1. “classpath:/META-INF/resources/”;
  2. “classpath:/resources/”;
  3. “classpath:/static/”;
  4. “classpath:/public/”。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)

注意: 在以上目录存放 静态资源 后,访问时,是不需要加目录名的,直接访问即可。如果在多个 静态资源目录 中有冲突文件出现时,它会按照从上到下的优先级访问。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)



二、设置欢迎页

根据源码得知:在 WebMvcAutoConfiguration类 中已经配置好了 欢迎页 的文件名 —— index.html

我们只需要将自己写好的 欢迎页 改为 index.html ,再将这个文件放入任意 静态资源目录 下即可。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)



三、设置网页Logo

根据源码得知:在 WebMvcAutoConfiguration类 中已经配置好了 网页Logo 的文件名 —— favicon.ico

我们只需要将自己设计好的 Logo文件 改为 favicon.ico,再将这个文件放入任意 静态资源目录 下即可。

SpringBoot入门学习笔记十(SpringBoot开发Web项目)



四、总结

  1. 通过源码发现默认的 静态资源目录 有四个,分别是:
    1. “classpath:/META-INF/resources/”;
    2. “classpath:/resources/”;
    3. “classpath:/static/”;
    4. “classpath:/public/”。
  2. 如果想在项目中引用静态资源:只需要将静态资源放入 以上目录即可;
  3. 项目中如果有其他特殊的文件(比如:欢迎页、网页Logo),只需要 按照约定的文件名(index.html 和 favicon.ico)放入到指定目录即可。


五、如何自己配置静态资源目录

虽然 约定优于配置,如果不想遵守约定,也可以自己进行配置,我们通过源码知道 默认的静态资源在ResourceProperties类中,该类的前缀是(prefix = “spring.resources”),如果自定义需要更改staticLocations属性。

我们在全局配置文件中(如:application.properties文件)写入下列配置:

spring.resources.static-locations=classpath:/res/, classpath:/img/

那么现在的 静态资源目录 就变成了:classpath:/res/classpath:/img/

注意: 自定义 静态资源目录 后,以前默认的 静态资源目录 就会失效!



博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!