如何通过源码探究静态资源的映射规则和特点,如何通过源码探究静态资源的映射规则和特点

  如何通过源码探究静态资源的映射规则和特点,如何通过源码探究静态资源的映射规则和特点

  本文介绍了通过源代码探索静态资源映射规则的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  Spring Boot——通过源代码探索静态资源的映射规则

  当我们开发一个Spring Boot项目时,我们必须导入许多静态资源,如css、js等文件。

  如果我们是一个web应用程序,在我们的main下会有一个web应用程序。我们曾经引导所有的页面,对吗?但是我们现在的pom呢?封装方法是针对jar的,那么SpringBoot可以用这种方式为我们写页面吗?当然可以,但是SpringBoot对静态资源的位置有规定!

  静态资源映射规则

  第一个映射规则

  在SpringBoot中,SpringMVC的web配置在配置类WebMvcAutoConfiguration中;

  WebMvcAutoConfigurationAdapter中有很多配置方法;有一种添加资源的方法:addResourceHandlers(),其源代码如下。

  @覆盖

  受保护的void addResourceHandlers(ResourceHandlerRegistry注册表){

  super.addResourceHandlers(注册表);

  如果(!this . resource properties . isaddmappings()){

  logger.debug(“默认资源处理已禁用”);

  返回;

  }

  servlet context servlet context=getservlet context();

  addResourceHandler(注册表,/webjars/** , class path:/META-INF/resources/web jars/);

  addResourceHandler(registry,this . MVC properties . getstaticpathpattern(),(registration) - {

  registration . addresourcelocations(this . resource properties . getstaticlocations());

  if (servletContext!=null) {

  registration . addresourcelocations(新ServletContextResource(SERVLET context,SERVLET _ LOCATION));

  }

  });

  }WebJars就是做客户端(浏览器)资源(JavaScript,Css等。)转换成jar包文件,以便统一管理资源。WebJars的jar包部署在Maven中央仓库上。

  我们可以在webjars官网上找到自己需要的资源,在自己的项目中添加maven依赖项,就可以直接使用这些资源了。

  例如,我们想要导入jquery资源。

  属国

  groupIdorg.webjars/groupId

  artifactIdjquery/artifactId

  版本3 . 6 . 0/版本/依赖性导入后我们可以通过资源路径找到资源的存放位置并访问,我们在webjars网站导入的资源都符合下图的结构

  通过路径访问,成功访问静态资源!

  第二种映射规则

  让我们继续分析源代码

  GetStaticPathpattern():获取静态路径模式,点进去看看源代码。

  公共字符串getStaticPathPattern() {

  返回this . static path pattern;

  }再看看staticPathPattern的源代码。

  /* *即当前目录下的所有静态资源都可以被识别,但是当前目录具体指的是什么呢?我们可以通过点击resourceProperties的源代码来查看。源代码如下:

  源代码明确给了我们四个路径的静态资源,所以只要是这四个目录下的静态资源,都可以直接获取。

  我们来测试一下,先完成上面的目录,然后在资源目录放一个js资源。

  开始springboot应用程序测试:成功访问静态资源!

  我们可以识别存储在以下四个目录中的静态资源:

   class path:/meta-INF/resources/ class path:/resources/ class path:/static/ class path:/public/注意:

  第一个目录的访问路径是localhost:8080/web jars/resource目录结构,后三个访问路径是localhost:8080/resource name。

  第二个映射规则的优先级是:resourcesstatic(默认)public

  自定义静态资源路径

  我们可以通过配置文件指定需要放静态资源文件的文件夹,并在application.properties中进行配置;

  spring . resources . static-locations=class path:/coding/,class path:/cheng/但是我们从下面的源代码中可以看到,如果自定义资源路径,上面默认的四个路径都是无效的,所以最好不要自定义路径,直接用springboot帮我们自动配置即可。

  如果(!this . resource properties . isaddmappings()){

  logger.debug(“默认资源处理已禁用”);

  返回;

  }相关免费学习推荐:java基础教程以上是如何通过源代码探索静态资源映射规则的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: