源码剖析|静态资源与首页展示【源码剖析】
【源码剖析|静态资源与首页展示【源码剖析】】
如果是一个web应用,在main下面会有个webapp,之前都是将所有页面导在这里;现在springboot也有静态资源放置的位置,但是有规定!
首先,了解一下静态资源映射规则!
在idea界面double Shift键:搜索WebMvcAutoConfiguration,SpringMVC的web配置都在这个配置类里面,其中有一个方法:addResourceHandlers 添加资源处理
文章图片
第一种静态资源映射规则!
源码解析:看一下/webjars/**,都需要去 classpath:/META-INF/resources/webjars/ 找相对应的资源,Webjars本质就是以jar包的方式引入我们的静态资源
比如要使用jQuery,我们只需引入jQuery对应版本的pom依赖即可!
文章图片
查看webjars目录结构
访问:http://localhost:8080/webjars/jquery/3.4.1/jquery.js
文章图片
第二种静态资源映射规则!
可以在staticPathPattern发现第二种映射规则 :/** , 说明可以访问当前项目的任意资源
文章图片
它会去找 resourceProperties 的Resources类,我们可以点进去看一下分析:
文章图片
它会去寻找资源的文件夹,即数组的内容。
优先级:resources>static(默认)>public
所以四个目录存放的静态资源可以被我们识别
比如访问 http://localhost:8080/1.js即可以访问出内容
自定义静态资源路径:在application.properties中配置;
spring.mvc.static-locations=classpath:/Long/**
一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了!
现在我们来看看首页是如何处理的,先去看看源码
文章图片
继续看getIndexHtml
文章图片
访问:http://localhost:8080/就会找静态资源文件夹下的 index.html
文章图片
欢迎来我的Github:https://github.com/dragon-idea
推荐阅读
- Android事件传递源码分析
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- ffmpeg源码分析01(结构体)
- Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- iOS,打Framework静态库
- Vue源码分析—响应式原理(二)
- java静态代理模式
- Android|Android JNI之静态注册(android studio)