前提
转型做 java,做了一个 springboot 的管理后台,部署上线的时候,发现上传图片的功能无法正常显示,后面查看路径发现,原来是自己的路径读取依然是自己在本地的路径,
那么问题就来了,该如何去根据项目的环境去读取相对应的上传文件的路径?
在不同环境的 properties
文件下创建一个属性
我的读取配置是这样:
测试环境的使用是配置:application-dev.properties
正式环境的使用是配置:application-prod.properties
在这两个文件下分别创建一个属性:
#dev配置
center.upload.photo.path=/tongji/
#prod配置
center.upload.photo.path=/tongji/upload/
创建配置类
这个配置类的位置就是在 包下面的 config 文件夹下,会根据项目读取的配置文件
去读取对应的我们上面设定的配置项
所以我们只需要读取上面配置的值拼接上资源路径
我的资源路径是 /resources/upload
所以我们把读到的配置值拼接到后面即可!
package com.center.config.admin;
/**
* 用来配置拦截器的配置类
*/
import com.center.admin.interceptor.AuthorityInterceptor;
import com.center.constant.RuntimeConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.center.admin.interceptor.LoginInterceptor;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${center.upload.photo.path}")
private String uploadPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/upload/").addResourceLocations("file:" + uploadPath);
}
}
这个配置类的核心就是去继承 WebMvcConfigurer
这个配置类
之后通过注解重写对应的方法
至此,路径的问题解决!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于