我们再写springboot项目的时候经常要使用到接口 WebMvcConfigurer
用这个接口大部分的目的都用来重写 addResourceHandlers 方法
为的就是将本地的文件静态映射到Tomcat服务器上
还需用到的两个类就是 addResourceHandler 和 addResourceLocations
这里就来总结一下这两个的参数填写
第一种:
import ;
import ;
import ;
@Configuration
public class WebAppconfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
("/image/**").addResourceLocations("file:D:\\aaa\\bbb\\ccc\\");
}
}
addResourceHandler("/image/**")里面填写的路径参数虚拟路径,就是用来网路请求的路径,可以填写成自己想写的 即("/ 自己要写的虚拟路径 /**"),下面都是一样的填写。
而addResourceLocations("file:D:\\aaa\\bbb\\ccc\\")就是第一种路径填写方法,直接填写绝对路径。经过网路请求将会访问到 D:\aaa\bbb\ccc\ 下的文件。这里必须有 file:而且 \ 要写两遍
第二种:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
("/image/**").addResourceLocations("classpath:/images/aaa/");
("/file/**").addResourceLocations("classpath:/images/bbb/");
}
"classpath:/images/aaa/"就是自己的项目的根目录下的文件,就是存放在resources里面的文件夹对应的文件。
第三种:
@Configuration
@Slf4j
public class WebAppconfigurer extends WebMvcConfigurationSupport {
@Value("${ImagesFilePath}")
private String ImagesFilePath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
("/image/**").addResourceLocations("file:"+ImagesFilePath);
}
}
这种写法是常用的,因为方便管理,但需要配置 ,
配置如下:
#Windows下的路径配置
ImagesFilePath: D:\aaa\bbb\ccc\
#linux下的路径配置
#ImagesFilePath: /usr/local/images/
这里需要注意的是Win系统是右斜杠 \
而Linux系统是左斜杠 /