1.环境:JDK+idea+spring boot2.63
2.打开spring-factories(相关介绍见第七篇)
找到WebMvc的自动配置文件,打开见源码。。。
源码中有一个addResourceHandlers()方法,参数是ResourceHandlerRegistry类型,
该方法的有两个If语句,说明它有两种静态资源导入的方式,先看一下第一个if()语句,在能读懂它之前,要先看懂webjars是什么?webjars就是一个能导入关于前端技术的网站,例如jQuery,boot starp等,通过该网站可以找到所需技术的依赖,这样就不用再导入相应的Jar包了
这样这个if语句就能看懂了,将classpath:/META-INF/resources/webjars/路径映射到了/webjars/**
下了,以导入jQuery为例
再来看下第二个if语句判断条件中servletContext通过看它源码,就是一个web application的背景或者文本。。。英语不好。。。
再来看下registration代表的是什么?
打开mvcProperties源码,/**就是一个静态资源的路径,但是我们不可以自己建立静态资源路径吗?
可以,看一下Resources的源码
该方法中的这四个位置都可以存放静态资源,创建Spring Boot工程时默认只创建static路径,如果需要,你可以创建其他三个。。。
这样搞清JSP,html等静态资源可以放在哪里了。。。
注:运用thymeleaf技术时,相应静态资源要放在classpath:/templates/路径下,且后缀为。html文件。大家可以找到相应自动配置的源码进行分析。。。