我们实现的目的是:通过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/**")

  

spring boot 配置虚拟静态资源文件的更多相关文章

  1. Spring Boot中的静态资源文件

    Spring Boot中的静态资源文件 1.SSM中的配置 2.Spring Boot 中的配置 2.1 整体规划 2.2 源码解读 2.3 自定义配置 2.3.1 application.prope ...

  2. Spring Boot实战:静态资源处理

    前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据.而做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静 ...

  3. Spring Boot 中的静态资源到底要放在哪里?

    当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...

  4. 【spring boot】7.静态资源和拦截器处理 以及继承WebMvcConfigurerAdapter类进行更多自定义配置

    开头是鸡蛋,后面全靠编!!! ========================================================  1.默认静态资源映射路径以及优先顺序 Spring B ...

  5. spring boot 2.0 + 静态资源被拦截,怎么办?

    问题描述:使用springboot 2.0后,按照springboot 1.5版本(以下简称旧版)的方式去配置项目.结果发现静态资源访问不到了,本文对此情况分析.处理 项目结构: 直接上图 如果是在旧 ...

  6. (4)Spring Boot Web开发---静态资源

    文章目录 对静态资源的映射规则 模板引擎 Thymeleaf 使用 & 语法 使用之前将的快速创建项目的方法,勾选我们需要的场景,这里我需要 web --> web.sql --> ...

  7. spring mvc 配置对静态资源的访问

    在spring mvc的配置文件中做如下配置: 1. <?xml version="1.0" encoding="UTF-8"?> <bean ...

  8. spring boot默认访问静态资源

    演示spring boot默认可以直接访问静态资源的2种方法: 第一种:在src/main/resources资源目录下创建一个名为"static"的文件夹(该文件夹的名称是规定死 ...

  9. spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法

    在spring boot 1.5.x中,resources/static目录下的静态资源可以直接访问,并且访问路径上不用带static,比如静态资源放置位置如下图所示: 那么访问静态资源的路径可以是: ...

随机推荐

  1. [JavaWeb基础] 025.JAVA把word转换成html

    用第三方插件POI把word文档转换成HTML,下面直接上代码 package com.babybus.sdteam.wordtopdf; import java.io.BufferedWriter; ...

  2. PreparedStatement实现表数据的增删改 & 封装数据库链接和关闭操作

    PreparedStatement实现表数据的增删改 PreparedStatementUpdateTest package com.aff.PreparedStatement; import jav ...

  3. GitHub+jsDelivr+PicGo 打造稳定快速、高效免费图床

    标题: GitHub+jsDelivr+PicGo 打造稳定快速.高效免费图床 作者: 梦幻之心星 347369787@QQ.com 标签: [GitHub, 图床] 目录: 图床 日期: 2019- ...

  4. nacos 配置

    具体请访问 https://nacos.io/zh-cn/docs/what-is-nacos.html 网站查看文档,现在开始使用Nacos. 1. 下载Nacos源码 Nacos可以通过 http ...

  5. Rocket - config - Keys & Params

    https://mp.weixin.qq.com/s/Y42EWrO7IoHRD_yHD4iRLA   介绍配置项.配置值以及他们的使用方式.   参考链接: https://docs.qq.com/ ...

  6. Mysql多个字段合并成一个返回

    可以使用CONCAT函数进行合并: SELECT CONCAT(IFNULL(t1.CITYNAME,''),IFNULL(t1.AREANAME,''),IFNULL(t1.STREETNAME,' ...

  7. Linux内核进程调度overview(1)

    一.概述 决定何时.如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy). Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运 ...

  8. Java实现 LeetCode 539 最小时间差(单位转换)

    539. 最小时间差 给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示. 示例 1: 输入: ["23:59","00:0 ...

  9. rpm安装Clickhouse

    1. 下载相关安装包 在opt目录下创建clickhouse目录,方便下载文件 Cd /opt/clickhouse  一次执行一下命令 ① wget --content-disposition ht ...

  10. [C#.NET 拾遗补漏]03:你可能不知道的几种对象初始化方式

    阅读本文大概需要 1.2 分钟. 随着 C# 的升级,C# 在语法上对对象的初始化做了不少简化,来看看有没有你不知道的. 数组的初始化 在上一篇罗列数组的小知识的时候,其中也提到了数组的初始化,这时直 ...