SpringBoot资源文件的存放位置设置方式

作者:justry_deng 时间:2023-02-26 10:37:00 

SpringBoot默认的存放静态资源文件的位置是:

SpringBoot资源文件的存放位置设置方式

注:SpringBoot中的src/main/resources/资源文件夹对应classpath:

默认存放静态资源文件的位置

在SpringBoot项目中的文件夹位置为:

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文件夹中了,图示说明:

SpringBoot资源文件的存放位置设置方式

注:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中多次通过.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

标签:SpringBoot,文件,存放位置
0
投稿

猜你喜欢

  • C#中foreach语句深入研究

    2022-11-15 00:30:17
  • Android性能优化之plt hook与native线程监控详解

    2021-09-10 22:06:01
  • Java实现堆排序和图解

    2023-11-11 12:13:37
  • 基于selenium-java封装chrome、firefox、phantomjs实现爬虫

    2022-04-07 19:04:28
  • Android popupWindow弹出窗体实现方法分析

    2021-08-08 08:07:42
  • java反编译工具Bytecode-Viewer分享

    2021-05-29 04:39:07
  • Spring Cloud Alibaba 本地调试介绍及方案设计

    2023-05-26 21:24:26
  • Java InheritableThreadLocal使用示例详解

    2023-04-17 20:18:12
  • 用C#生成不重复的随机数的代码

    2023-03-08 03:36:52
  • c# base64转字符串实例

    2021-06-25 01:47:54
  • 在Spring环境中正确关闭线程池的姿势

    2023-11-25 08:07:29
  • mybatis水平分表实现动态表名的项目实例

    2023-04-02 22:11:42
  • java多线程关键字final和static详解

    2022-12-19 19:02:01
  • Android定时器Timer的停止和重启实现代码

    2022-10-03 23:25:43
  • 深入理解Android MD5数据加密

    2022-03-16 07:48:03
  • C#使用有道ip地址查询接口方法实例详解

    2022-10-08 22:07:31
  • 详解Spring框架下向异步线程传递HttpServletRequest参数的坑

    2021-05-31 04:45:21
  • PageHelper插件实现一对多查询时的分页问题

    2021-11-05 07:02:34
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    2022-12-27 12:56:57
  • Mybatis如何解决sql中like通配符模糊匹配问题

    2023-12-22 19:39:52
  • asp之家 软件编程 m.aspxhome.com