您的位置:首页 > 运维架构 > Linux

spring boot项目访问本地图片详解(Windows/Linux)

2018-11-22 12:00 375 查看

配置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就可以访问到图片了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐