SpringBoot打包jar包之后图片上传的路径问题解决

Updated on with 0 views and 0 comments

前提

转型做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这个配置类
之后通过注解重写对应的方法


至此,路径的问题解决!

求知若渴,终身编程