/**
*配置映射地址
*/
@Configuration
public class SunyardWebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/images/**").addResourceLocations("file:"+ Constant.FILE_UPLAOD_DIR);
}
}
addResourceHandlers是重写WebMvcConfigurer中的addResourceHandlers方法
一个ResourceHandlerRegistry 中有多个ResourceHandlerRegistration
//ResourceHandlerRegistry中
private final List<ResourceHandlerRegistration> registrations = new ArrayList<>();
public ResourceHandlerRegistration addResourceHandler(String... pathPatterns) {
ResourceHandlerRegistration registration = new ResourceHandlerRegistration(pathPatterns);
this.registrations.add(registration);
return registration;
}
private final List<String> locationValues = new ArrayList<>();
public ResourceHandlerRegistration addResourceLocations(String... resourceLocations) {
this.locationValues.addAll(Arrays.asList(resourceLocations));
return this;
}
整体的思路就是在ResourceHandlerRegistry中注册多个指定pathPatterns的ResourceHandlerRegistration,每个ResourceHandlerRegistration中可以配置一个resourceLocation。来实现pathPatterns和resourceLocation的一一对应