• 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/**")

      

  • 相关阅读:
    mysql中Can't connect to MySQL server on 'localhost' (10061)
    Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。
    Class.forName()用法详解
    ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
    Struts2的模板和主题theme及自定义theme的使用
    sql中 in 、not in 、exists、not exists 用法和差别
    JavaScript的replace方法与正则表达式结合应用讲解
    Caused by: java.lang.NoClassDefFoundError at com.jc.zm.ZmAlarmAction.analyDo(ZmAlarmAction.java:198)
    打开jsp页面时,显示空白页。
    chown命令详情
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/12923550.html
Copyright © 2020-2023  润新知