springboot项目默认静态资源底层源码

最近在做QQ登录功能的时候,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用


文章目录

      • 一 代码解释
      • 二 拓展
      • 三 总结


一 代码解释

看完自定义访问静态资源不知道大家有没有猜到为什么springboot可以访问/META-INF/resources,resources,static,public这4个文件夹下的静态资源,并且直接访问图片名称即可。下面我们来看一下springboot中的源码:

  1. 打开WebMvcAutoConfiguration类找到addResourceHandlers方法:
    springboot项目默认静态资源底层源码_第1张图片
    从图中我们可以看到首先将变量staticPathPattern赋值然后将获取的值赋给资源访问路径方法,下面我们看一下staticPathPattern的值为什么
  2. 打开WebMvcProperties类我们可以找到以下代码:
    springboot项目默认静态资源底层源码_第2张图片
    从图中我们可以看到值为/**这也就解释了为什么springboot在访问静态资源的时候只访问资源啊名称即可。
  3. 下面我们继续查看WebMvcAutoConfiguration类:
    springboot项目默认静态资源底层源码_第3张图片
  4. 打开ResourceProperties类我们可以看到以下俩段代码:
    springboot项目默认静态资源底层源码_第4张图片
    springboot项目默认静态资源底层源码_第5张图片
    在CLASSPATH_RESOURCE_LOCATIONS[] 这个数组中我们可以看到
    “classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”这4个属性,这就解释了为什么springboot可以直接访问1./META-INF/resources 2.resources 3.static 4.public这4个文件夹下的静态资源。

二 拓展

  1. 访问404
  2. 原理浅谈

三 总结

  如有错误恳请指正,如有侵权请联系我删除
  参考文章:https://blog.csdn.net/qq_34797335/article/details/80194137

你可能感兴趣的:(2020春节假期)