静态资源访问
默认策略
SpringBoot 中对于SpringMVC的自动化配置都在WebMVCAutoConfiguration类中。在WebMvcAutoConfiguration类中有一个静态内部类WebMvcAutoConfigurationAdapter,实现了WebMvcConfigurer接口。WebMvcConfigurer 接口中有一个方法addResourceHandlers,是用来配置静态资源过滤的。方法在WebMvcAutoConfigurationAdapter 类中得到了实现,部分核心代码如下:
SpringBoot 在这里进行了默认的静态资源过滤配置,其中staticPathPattern默认定义在WebMvcProperties中,定义内容如下:
自定义策略
第一种:application.properties
spring.resources.static-locations=classpath:/
spring.mvc.static-path-pattern=/**
第一行配置表示定义资源位置,
第二行配置表示定义请求 URL 规则。
以上文的配置为例,如果我们这样定义了,表示可以将静态资源放在 resources 目录下的任意地方,我们访问的时候当然也需要写完整的路径,例如在 resources/static 目录下有一张名为 1.png 的图片,那么访问路径就是 http://localhost:8080/static/1.png ,注意此时的 static
第二种java配置
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/res/");
}
}