SpringBoot资源文件的存放位置设置方式
作者:justry_deng 发布时间:2023-02-26 10:37:00
SpringBoot默认的存放静态资源文件的位置是:
注:SpringBoot中的src/main/resources/资源文件夹对应classpath:。
默认存放静态资源文件的位置
在SpringBoot项目中的文件夹位置为:
即:搜索文件夹的优先顺序和数组中的顺序一致。
当我们访问IP地址:端口号/时,就相当于访问到了这四个文件夹。
如:访问:localhost:8080/123.jpg时,就会先去看src/main/resources资源文件夹下的META-INF下的resoures文件夹中是否有123.jpg,没 有的话再看src/main/resources资源文件夹下的resoures文件夹中是否有123.jpg,没有的话再看src/main/resources资源文件夹下的static文件夹中是否有123.jpg,没有的话再看src/main/resources资源文件夹下的public文件夹中是否有123.jpg。
手动配置其搜索资源文件的文件夹位置
把文件放在SpringBoot项目下的classpath中
方式一:通过配置类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
/**
* 主动设置URL匹配路径
*
* @author JustryDeng
* @date 2018年8月4日 上午1:36:38
*/
@Configuration
public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/fileData/**").addResourceLocations("classpath:/myFile/");
super.addResourceHandlers(registry);
}
}
此时:访问IP地址:端口号/fileData/时,就相当于到了src/main/resources资源文件夹下的myFile文件夹中了,图示说明:
注:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中多次通过.addResourceHandler添加指定那四个文件夹。
方式二:通过配置文件
# 设置当URI为/fileData/**时,才进过静态资源
# 注:如果设置为/**,那么表示任何访问都会经过静态资源路径
spring.mvc.static-path-pattern=/fileData/**
# 自定义路径
# 注:自定义路径时,默认的四个文件夹下中的“META-INF下的resoures文件夹”仍然有效,其他三个文件夹失效
# (此时:访问ip:端口号/fileData/时,相当于访问到了 “自定义的文件夹”和 “META-INF下的resoures文件夹”);
# 注:搜索文件时,自定义的文件夹的优先级要高于默认的四个文件夹
spring.resources.static-locations=classpath:/myFile/
# 提示:如果我们显式地把自定义文件夹 和 默认的四个文件夹都写出来,那么都会有效(此时,优先级 从左至右 依次降低)
#spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/myFile/
把文件放在项目jar包之外的服务器磁盘中的某个文件夹中
方式一:通过配置类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
/**
* 主动设置URL匹配路径
*
* @author JustryDeng
* @date 2018年8月4日 上午1:36:38
*/
@Configuration
public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 指定到D盘下的myFile文件夹
// 注:如果是Linux的话,直接指定文件夹路径即可,不需要指定哪个盘(Linux就一个可用盘)
registry.addResourceHandler("/fileData/**").addResourceLocations("file:D:/myFile/");
super.addResourceHandlers(registry);
}
}
此时:我们访问IP地址:端口号/fileData/时,就相当于到了服务器D盘下的myFile文件夹中了。
注:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中通过 .addResourceHandler多次添加四个文件夹。
方式二:通过配置文件
# 设置当URI为/fileData/**时,才进过静态资源
# 注:如果设置为/**,那么表示任何访问都会经过静态资源路径
spring.mvc.static-path-pattern=/fileData/**
# 自定义路径
# 注:自定义路径时,默认的四个文件夹下中的“META-INF下的resoures文件夹”仍然有效,其他三个文件夹失效
# (此时:访问ip:端口号/fileData/时,相当于访问到了 “自定义的文件夹”和 “META-INF下的resoures文件夹”);
# 注:搜索文件时,自定义的文件夹的优先级要高于默认的四个文件夹
spring.resources.static-locations=file:D:/myFile/
# 提示:如果我们显式地把自定义文件夹 和 默认的四个文件夹都写出来,那么都会有效(此时,优先级 从左至右 依次降低)
#spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:D:/myFile/
来源:https://blog.csdn.net/justry_deng/article/details/81406752


猜你喜欢
- 自从使用 HttpClient 和 Jsoup 配合编写了几个简单的入门爬虫之后,发现对于绝对路径的需求是很频繁的,因为大部分的网页都写相对
- Android SQLite数据库版本升级的管理实现我们知道在SQLiteOpenHelper的构造方法:super(Context con
- “深入浅出,人人都是程序员”开发过android手机的同学都知道在eclipse中可以直接查找到SHA1值,但是使用intellij ide
- StringBuilder在高性能场景下的正确用法关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuild
- 布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去
- 原则:1、函数指针,实际上是函数编码后的指令在内存中的首地址,在C++/C中,这个地址可以用函数名直接使用一个函数调用另一个函数的时候,就可
- 简介使用配置类和注解代替web.xml和SpringMVC配置文件的功能在Servlet3.0环境中,容器会在类路径中查找实现javax.s
- Java实现并发的几种方法Java程序默认以单线程方式运行。synchronizedJava 用过synchronized 关键字来保证一次
- 1、概述之前写了一个Android * QQ5.0 侧滑菜单效果 自定义控件来袭 ,恰逢QQ5.2又加了一个右侧菜单,刚好看了下Drawe
- 最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间
- C#貌似没有专门用于ASCII码转字符或字符转ASCII码的系统函数,所以小编这里就借用一下强制类型转换来实现ASCII码与字符之间的互转。
- 代码如下:@Test public void shengdanshu(){ //叶子层
- 目录实现基础_routeNamed_flushHistoryUpdatesaddpushpopremove总结整个 flutter 应用的运
- 这一篇博客我们来使用 UGUI 实现图片的拖拽功能。说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还
- 一、SpringBoot可以识别4种配置文件1.application.yml2.application.properties3.boots
- Android 工程构建的持续集成,需要搭建一套编译和打包自动化流程,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Andro
- 一、代码结构:二、数据实体类:using System;using System.Collections.Generic;using Sys
- 昨天遇到了点问题解决浪费了一些时间(导致更新内容较少)回顾下问题项目出现Unable to import maven project: Se
- 同步日志的业务流程处理和日志打印是在同一个线程,日志打印的过程实际上是写文件IO的过程,这个过程是相对耗时的,并且会阻塞主线程的执行,只有日
- 本文实例为大家分享了java实现画图板功能的具体代码,供大家参考,具体内容如下一、介绍这个画图板主要实现的功能是画矩形(矩形使用的是一个函数