Spring Boot Web应用程序目录映射

Spring Boot 会因为引用web配置,创建一个资源处理器,这个资源处理器把相对于Classpath根目录的
/static
/public
/resources
/META-INF/resources
里的静态内容提供出来。

本人理解:
spring boot 创建的maven项目的classpath 指的是src-main下的目录文件名称,每创建一个文件夹,classpath都会增加一个。

原因:
WebMvcAutoConfiguration里会添加

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

进一步看代码,下面的程序块会被添加到:ResourceHandlerRegistry

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    if (!registry.hasMappingForPattern("/webjars/**")) {
        registry.addResourceHandler("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
    }
    if (!registry.hasMappingForPattern("/**")) {
        registry.addResourceHandler("/**").addResourceLocations(
                RESOURCE_LOCATIONS);
    }
}

注意:如果在@Configuration配置类里添加@EnableWebMvc,WebMvcAutoConfiguration里的配置将会失效,你必须逐一配置。
网上很多例子直接写了该注解,如果不是作者本意,那么很多配置都要自己重新配置了。

如果需要添加映射目录,需要定义WebMvcConfigurer接口的实现类。spring 5x和spring boot 2x 废弃了WebMvcConfigurerAdapter。

@Configuration
public class MyWebMvcConfg implements WebMvcConfigurer {

    //todo

}

添加某一目录:
如果你想增加如/mystatic/**映射到classpath:/mystatic/,你可以让你的配置类实现WebMvcConfigurer,然后重写如下方法:

public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/mystatic/**")
            .addResourceLocations("classpath:/mystatic/");
}

网上一些人的心得:
https://www.cnblogs.com/chen110xi/p/6198497.html
这个说的非常好,很清晰。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,122评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • SpringMVC原理分析 Spring Boot学习 5、Hello World探究 1、POM文件 1、父项目...
    jack_jerry阅读 5,218评论 0 1
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 17,024评论 2 89
  • 一、Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架;整个Spr...
    Y了个J阅读 11,680评论 1 6

友情链接更多精彩内容