SpringMvc配置静态资源访问路径

1. 整体流程

1. 写一个配置类继承WebMvcConfigurationSupport
2. 利用 registry.addResourceHandler("访问路径").addResourceLocations("分配资源目录");
   将想要映射的访问路径令其去访问分配的资源路径当中

  核心:会将前面匹配的( ** )当中的路径作为相对路径,动态的添加到后面的目录路径当中去,将两个路径连起来去动态访问资源
  前后的访问路径和资源目录的书写一定要可以匹配连接上,会将前面匹配路径作为相对路径去资源目录当中进行寻找(非常关键)

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    
    
	@Override
	protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
		registry.addResourceHandler("/Test/**").addResourceLocations("classpath:/D1/"+"");
	}
}

2. registry.addResourceHandler()

2.1 函数分析

 a. 该函数允许对于指定匹配的pathPatter添加一个资源处理程序(ResourceHandlerRegistration),对于与指定路径匹配的资源路径将调用该资源处理程序
 b. 允许添加多个匹配的路径, 合法满足一个即可

public ResourceHandlerRegistration addResourceHandler(String... pathPatterns) {
    
    
	ResourceHandlerRegistration registration = new ResourceHandlerRegistration(pathPatterns);
	this.registrations.add(registration);
	return registration;
}

2.2 结果演示

 关键a:对于路径资源只需要匹配其中一个即可进行访问
 关键b: 对于可能存在包含的路径,系统会自动先将更精确的路径进行优先匹配
在这里插入图片描述

3. ResourceHandlerRegistration.addResourceLocations()

3.1 函数分析

 a. 对于成功匹配的路径,添加一个或多个资源位置(有效的目录),从中提供静态内容。按照书写的顺序进行依次匹配
 b. 允许添加多个资源路径,逐个匹配

	public ResourceHandlerRegistration addResourceLocations(String... locations) {
    
    
		this.locationValues.addAll(Arrays.asList(locations));
		return this;
	}

3.2 结果演示

 关键a:允许匹配多个路径资源目录里
在这里插入图片描述

在这里插入图片描述
 关键b: 会按顺序匹配资源目录(这个不同于上面路径匹配无序不影响结果,这个资源目录的匹配与书写顺序有关,优先匹配写在前面的资源目录)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51566349/article/details/131816800