SpringMvc映射文件夹读取文件
SpringMvc映射文件夹读取文件
很多项目都喜欢把文件放入ROOT包下面,导致维护困难,每次都得备份移动出来,然后解包后再放回去,正确做法应该放入tomcat之外,独立出一个文件来专门放文件。映射路由至文件夹后,方便tomcat读取
@Component
class WebConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//配置server虚拟路径,handler为路由路径,locations为files相对应的本地路径 registry.addResourceHandler("/files/**").addResourceLocations("磁盘路径如:/home/filePath/");
}
//或者基本路径分离至配置文件(记得要区分linux和windows的路径)
@Configuration
public class ResourcesConfigAdapter
extends WebMvcConfigurerAdapter {
@Value("${server.download.dir}")
private String resourceDir;
//对静态资源的配置
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) { //如果是Windows系统
registry.addResourceHandler("/smallapple/**")
// /apple/**表示在磁盘apple目录下的所有资源会被解析为以下的路径
.addResourceLocations("file:G:/itemsource/smallapple/") //媒体资源
.addResourceLocations("classpath:/META-INF/resources/"); //swagger2页面
} else { //linux 和mac
registry.addResourceHandler("/smallapple/**")
.addResourceLocations("file:/resources/smallapple/") //媒体资源
.addResourceLocations("classpath:/META-INF/resources/"); //swagger2页面;
}
}
}
}