这是我的《学透Spring Boot》专栏的第17篇文章,了解更多内容请移步我的专栏:
Postnull CSDN 学透 Spring Boot
目录
静态文件
静态文件的默认位置
通过配置文件配置路径
通过代码配置路径
静态文件的自动配置
总结
静态文件
以前的传统MVC的项目,我们会使用JSP作为视图,这就是动态文件,这些JSP长得像HTML,其实最终会转换成一个Java类,通过out.print将响应动态的打印出来。
另外,我们有些文件是静态文件,比如图片、js等等,我们希望能够直接访问。
默认的,Spring boot会从一些默认的路径加载这些静态文件。
今天我们来学习一下如何访问静态文件。
静态文件的默认位置
Spring Boot 自动配置了静态资源的处理,默认会扫描一些特定目录中的静态文件。这些目录是:
- /static
- /public
- /META-INF/resources
这四个目录中的文件会被自动加载并可以通过 HTTP 访问。如果你将静态文件放入这些目录中,Spring Boot 会自动处理它们,无需额外配置。
我们就可以通过URL访问这个文件:
localhost:8080/a.html
localhost:8080/d.html
测试发现,static目录和public目录既可以放在根目录下,也可以放在src/main/resources下。
但是如果在一个目录下既有static也有public,只会加载public文件夹!
通过配置文件配置路径
有时候,我们不想使用默认的路径,而是想自定义路径(闲得蛋疼)
我们可以覆盖Spring的配置即可(约定大约配置)
比如我们想从下面两个目录加载静态文件。
我们可以通过配置文件
能够直接访问
通过代码配置路径
除了application.properties配置,我们还可以通过Java代码的方式配置静态文件的路径。
这个MVC配置器,我们已经配置了很多次了!!!!
可以说是Spring MVC自定义配置的地方。用来覆盖默认的配置。
静态文件的自动配置
我们还想看看SpringBoot怎么自动配置的。
我们直接看Spring MVC的自动配置类 ,WebMvcAutoConfiguration
这个类也是老演员了。
这个类会去配置资源处理器。
重点看
可以看到多个默认的静态文件路径:
- "classpath:/META-INF/resources/"
- "classpath:/resources/"
- "classpath:/static/"
- "classpath:/public/"
总结
本文我们学习了Spring Boot的静态文件默认路径,还修改了默认路径,最后我们还通过源码,理解了Spring Boot对静态文件的自动配置。