配置application.yml
首先是在yml(porperties)文件里面配置你图片存放的路径,本文采用yml
可以看到,在这里配置了windows下的路径和Linux上的路劲,下面我们来用代码判断当前环境是在Windows上还是在Linux上。
判断当前环境
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("upload")
public class UploadProperties {
// 获取存放位置
private Map<String, String> localtion;
public Map<String, String> getLocaltion() {
return localtion;
}
public void setLocaltion(Map<String, String> localtion) {
this.localtion = localtion;
} public String getBasePath() {
String location = "";
String os = System.getProperty("os.name");
if(os.toLowerCase().startsWith("win")) {
location = this.getLocaltion().get("windows");
} else {
location = this.getLocaltion().get("linux");
}
return location;
}
}
这里的@ConfigurationProperties(“upload”) 里面的upload对应yml文件里的upload, location = this.getLocaltion().get(“windows”); get里的参数也是对应配置文件里upload下的windows和Linux。
配置项目访问路径
@Configuration
public class MyWebAppConfiguration extends WebMvcConfigurerAdapter {
@Resource
private UploadProperties uploadProperties;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String path = uploadProperties.getBasePath();
registry.addResourceHandler("/path/**").addResourceLocations("file://"+path);
super.addResourceHandlers(registry);
}
这个时候把项目运行起来就可以访问到你在yml里指定文件夹下的本地图片了,我这里是用的/path/**,所以在访问的时候就是这样127.0.0.1:8080/path/test.png就可以访问到图片了。