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/**")
spring boot 配置虚拟静态资源文件的更多相关文章
- Spring Boot中的静态资源文件
Spring Boot中的静态资源文件 1.SSM中的配置 2.Spring Boot 中的配置 2.1 整体规划 2.2 源码解读 2.3 自定义配置 2.3.1 application.prope ...
- Spring Boot实战:静态资源处理
前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据.而做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静 ...
- Spring Boot 中的静态资源到底要放在哪里?
当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...
- 【spring boot】7.静态资源和拦截器处理 以及继承WebMvcConfigurerAdapter类进行更多自定义配置
开头是鸡蛋,后面全靠编!!! ======================================================== 1.默认静态资源映射路径以及优先顺序 Spring B ...
- spring boot 2.0 + 静态资源被拦截,怎么办?
问题描述:使用springboot 2.0后,按照springboot 1.5版本(以下简称旧版)的方式去配置项目.结果发现静态资源访问不到了,本文对此情况分析.处理 项目结构: 直接上图 如果是在旧 ...
- (4)Spring Boot Web开发---静态资源
文章目录 对静态资源的映射规则 模板引擎 Thymeleaf 使用 & 语法 使用之前将的快速创建项目的方法,勾选我们需要的场景,这里我需要 web --> web.sql --> ...
- spring mvc 配置对静态资源的访问
在spring mvc的配置文件中做如下配置: 1. <?xml version="1.0" encoding="UTF-8"?> <bean ...
- spring boot默认访问静态资源
演示spring boot默认可以直接访问静态资源的2种方法: 第一种:在src/main/resources资源目录下创建一个名为"static"的文件夹(该文件夹的名称是规定死 ...
- spring boot 2.x静态资源会被HandlerInterceptor拦截的原因和解决方法
在spring boot 1.5.x中,resources/static目录下的静态资源可以直接访问,并且访问路径上不用带static,比如静态资源放置位置如下图所示: 那么访问静态资源的路径可以是: ...
随机推荐
- [PHP插件教程]001.Pear包管理器
PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写.它是一个PHP扩展及应用的一个代码仓库. 简单地说,PEAR之于PHP就 ...
- 关于Dev-C++一种引用头文件<iostream>问题(暴力解决)
问题情况如下,因个人水平有限,不知道具体原因是啥,当引用头文件<iostream>时会出现如下问题,经排查,并不是头文件本身的问题,有可能是Dev哪一个文件被改动了,或者设置出了问题(前者 ...
- Yii Framework 漏洞整理
一 Yii Framework 2.0.9 - Cross Site ScriptingPublished # Exploit Title: Yii Framework 2.0.9 - Cross S ...
- 轻松实现记录与撤销——C#中的Command模式
Command模式属于行为模式,作为大名鼎鼎的23个设计模式之一,Command模式理解起来不如工厂模式,单例模式等那么简单直白.究其原因,行为模式着重于使用,如果没有编程实践,确实不如创造模式那么直 ...
- Qcom rampdump解析工具使用
使用如下命令获取qcom工具: ljj@ljj-ThinkCentre-M83:~/git/qcom_tools/ramdump$ git clone git://codeaurora.org/qui ...
- Java实现蓝桥杯模拟空地长草
问题描述 小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1. 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地. 这些草长得很快,每个月,草都会向外长出一 ...
- Java实现 LeetCode 284 顶端迭代器
284. 顶端迭代器 给定一个迭代器类的接口,接口包含两个方法: next() 和 hasNext().设计并实现一个支持 peek() 操作的顶端迭代器 – 其本质就是把原本应由 next() 方法 ...
- Java实现简易计算器
import java.util.Scanner; public class Demo_1 { public static void main(String[] args) { //输入的两个数字进行 ...
- java实现算年龄
英国数学家德摩根出生于19世纪初叶(即18xx年). 他年少时便很有才华.一次有人问他的年龄,他回答说: "到了x的平方那年,我刚好是x岁". 请你计算一下,德摩根到底出生在哪一年 ...
- java实现第七届蓝桥杯分小组
分小组 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF GHI ...