spring boot 配置虚拟静态资源文件

时间:2020-05-20
本文章向大家介绍spring boot 配置虚拟静态资源文件,主要包括spring boot 配置虚拟静态资源文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

          我们实现的目的是:通过spring boot 配置静态资源访问的虚拟路径,可实现在服务器,或者在本地通过:http://ip地址:端口/资源路径/文件名  ,可直接访问文件

          比如:我们本地电脑的:E:/upload/image/,存放上传的图片。

  通过spring 配置静态资源虚拟路径:具体配置信息如下:

 编写:ResourceConfigAdapter.java配置类,代码如下:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 类说明:将物理磁盘文件存放的绝对路径映射为一个虚拟路径,就可以通过SpringBoot服务来访问文件了 可以直接通过服务器的域名+图片路径,实现图片的全路径在浏览器直接预览
 */
@Configuration
public class ResourceConfigAdapter extends WebMvcConfigurerAdapter {

  @Value("${upload.path}")
  private String uploadPath;

  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    String os = System.getProperty("os.name");
    if (os.toLowerCase().startsWith("win")) {
      //如果是Windows系统:这里的路径,可根据自己想上传图片在本地电脑硬盘的路径
      registry.addResourceHandler("/image/**").     //这一句代表,如果在浏览器访问项目服务器的时候,有:/image/xxxxx,的时候,资源自动指向E:/upload/image/该路径     
addResourceLocations("file:E:/upload/image/"); //这句代表资源文件的位置
 } else {
 //linux和mac系统 
registry.addResourceHandler("/image/**").
addResourceLocations("file:" + uploadPath + "/");
}
super.addResourceHandlers(registry);
}
}

  

代码里面出现: 是我写在properties配置文件里面的配置变量。主要是在linux服务器的图片存放路径,你们自己可自己写死先,好方便测试

  @Value("${upload.path}")
  private String uploadPath;  

代码已经全部配置好了。上传文件的代码,这里就不展示了,因为上传文件代码实在太简单了。(若想知道,可百度:spring boot 文件上传,或者可添加本人微信:Y1141100952询问(秒回哦))

比如:

E:/upload/image/
存放了图片,图片名为,1234567.jpg

那么在项目启动的情况下,在本地浏览器想访问该图片,那么完整的路径为: http://127.0.0.1:项目启动端口号/image/1234567.jpg

解析:

registry.addResourceHandler("/image/**").      //这一句代表,如果在浏览器访问项目服务器的时候,有:/image/xxxxx,的时候,资源自动指向E:/upload/image/该路径
addResourceLocations("file:E:/upload/image/"); //这句代表资源文件的位置

我们看到有这段配置代码,主要是这一句:addResourceHandler("/image/**")

  

原文地址:https://www.cnblogs.com/qq1141100952com/p/12923550.html