SpringMvc映射文件夹读取文件

596

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页面;
        }
    }

}

}