栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot静态资源处理原理分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot静态资源处理原理分析

想要了解springboot处理哪些静态资源。我们需要到底层去看源码,这样才能知道怎么配置。
首先我们需要找到WebMvcAutoConfiguration这个类,这是专门配置SpringMvcde。
在这个类里面,找到静态资源相关的方法addResourceHandlers。

public void addResourceHandlers(ResourceHandlerRegistry registry) {
            if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                this.addResourceHandler(registry, "/webjars/**", "classpath:/meta-INF/resources/webjars/");
                this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
                    registration.addResourceLocations(this.resourceProperties.getStaticLocations());
                    if (this.servletContext != null) {
                        ServletContextResource resource = new ServletContextResource(this.servletContext, "/");
                        registration.addResourceLocations(new Resource[]{resource});
                    }

                });
            }
        }

我们可以看到"/webjars/**", "classpath:/meta-INF/resources/webjars/"这个目录下的所有静态资源都可以被访问到,当然这是不常用的。
第二种getStaticLocations(),点进去看一下

 public String[] getStaticLocations() {
            return this.staticLocations;
        }

返回的staticLocations再点进去

 this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS;

CLASSPATH_RESOURCE_LOCATIONS;就是静态资源存放的路径,点进去查看

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/meta-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};

classpath对应的目录结构是resouces。所以这几个包下面的静态资源都能被访问

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349505.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号