spring MVC是如何找到html文件并返回的?

Spring MVC 搜索路径

启动一个SpringBoot项目时,访问http://localhost:8080,对于SpringMVC,它会默认把这段url看成http://localhost:8080/index.html,所以这两个url是等价的。

.html, .css, .js, .img ...都是静态资源文件,不是通过controller访问的,而是spring mvc有一个静态资源搜索路径,在spring boot中,是位于org.springframework.boot.autoconfigure.web.ResourceProperties类下

java 复制代码
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
"classpath:/META-INF/resources/",
 "classpath:/resources/", 
"classpath:/static/",
 "classpath:/public/"};

classpath表示类路径,项目编译后,会有一个classes文件,这个文件夹下就是类路径。

spring MVC会按顺序依次搜索/META-INF/resources/、/resources/、/static/、/public/文件夹,先搜到指定的静态资源,就直接返回,不会继续搜下去。

这里,静态资源搜索路径中有两个index.html。

根据先来后到的原则,由于 "classpath:/resources/"定义在"classpath:/static/"前面,所以搜索到classpath:/resources/"下的index就会返回。

自定义静态资源搜索路径

当然,Spring MVC静态资源搜索路径可以自定义,在application.yaml文件中配置:

yaml 复制代码
spring:
  resources:
    static-locations: classpath:/custom

注意:

自定义的classpath:/custom这个路径并不会覆盖已经写死的静态资源访问路径,也就是前面几个路径依然生效。但是classpath:/custom是排在前面几个路径的前面的。

相关推荐
_OP_CHEN12 分钟前
【前端开发之CSS】(三)CSS 常用元素属性宝典(上):从字体到文本,手把手教你打造高颜值网页!
前端·css·html·网页开发·文本属性·字体属性·页面美化
老毛肚1 小时前
Spring 6.0基于JDB手写定制自己的ROM框架
java·数据库·spring
手握风云-3 小时前
JavaEE 进阶第十二期:Spring Ioc & DI,从会用容器到成为容器(上)
java·spring·java-ee
马猴烧酒.3 小时前
JAVA后端对象存储( 图片分享平台)详解
java·开发语言·spring·腾讯云
IT空门:门主3 小时前
Spring AI Alibaba使用教程
java·人工智能·spring
CTO Plus技术服务中3 小时前
2026版Java web高并发面试题和参考答案
java·jvm·spring·spring cloud·面试·tomcat·java-consul
松涛和鸣4 小时前
62、IIC通信解析
服务器·arm开发·单片机·嵌入式硬件·html
哪里不会点哪里.5 小时前
Spring MVC Restful 风格的接口流程是什么样的呢?
spring·mvc·restful
不会c+5 小时前
Spring和Springboot的区别
java·spring boot·spring
小花5 小时前
java后端框架之spring
java·开发语言·spring