SpringBoot中配置文件服务器

转载自:https://blog.csdn.net/justry_deng/article/details/81406752

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中:

方式一:通过配置类

  1. import org.springframework.context.annotation.Configuration;
  2. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  3. import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
  4. /**
  5. * 主动设置URL匹配路径
  6. *
  7. * @author JustryDeng
  8. * @date 2018年8月4日 上午1:36:38
  9. */
  10. @Configuration
  11. public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
  12. @Override
  13. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  14. registry.addResourceHandler("/fileData/**").addResourceLocations("classpath:/myFile/");
  15. super.addResourceHandlers(registry);
  16. }
  17. }

此时:访问IP地址:端口号/fileData/时,就相当于到了src/main/resources资源文件夹下的myFile文件夹中了,图示说明:

注:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中多次通 
       过.addResourceHandler添加指定那四个文件夹。

方式二:通过配置文件

  1. # 设置当URI为/fileData/**时,才进过静态资源
  2. # 注:如果设置为/**,那么表示任何访问都会经过静态资源路径
  3. spring.mvc.static-path-pattern=/fileData/**
  4. # 自定义路径
  5. # 注:自定义路径时,默认的四个文件夹下中的“META-INF下的resoures文件夹”仍然有效,其他三个文件夹失效
  6. # (此时:访问ip:端口号/fileData/时,相当于访问到了 “自定义的文件夹”和 “META-INF下的resoures文件夹”);
  7. # 注:搜索文件时,自定义的文件夹的优先级要高于默认的四个文件夹
  8. spring.resources.static-locations=classpath:/myFile/
  9. # 提示:如果我们显式地把自定义文件夹 和 默认的四个文件夹都写出来,那么都会有效(此时,优先级 从左至右 依次降低)
  10. #spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/myFile/

把文件放在项目jar包之外的服务器磁盘中的某个文件夹中:

方式一:通过配置类

  1. import org.springframework.context.annotation.Configuration;
  2. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  3. import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
  4. /**
  5. * 主动设置URL匹配路径
  6. *
  7. * @author JustryDeng
  8. * @date 2018年8月4日 上午1:36:38
  9. */
  10. @Configuration
  11. public class MyURLPatternConfiguration extends WebMvcConfigurationSupport {
  12. @Override
  13. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  14. // 指定到D盘下的myFile文件夹
  15. // 注:如果是Linux的话,直接指定文件夹路径即可,不需要指定哪个盘(Linux就一个可用盘)
  16. registry.addResourceHandler("/fileData/**").addResourceLocations("file:D:/myFile/");
  17. super.addResourceHandlers(registry);
  18. }
  19. }

此时:我们访问IP地址:端口号/fileData/时,就相当于到了服务器D盘下的myFile文件夹中了。

注:此时默认的四个文件夹都失效了,如果想让默认的四个文件夹依然有效,那么可以在配置类中通过
       .addResourceHandler多次添加四个文件夹。

方式二:通过配置文件

  1. # 设置当URI为/fileData/**时,才进过静态资源
  2. # 注:如果设置为/**,那么表示任何访问都会经过静态资源路径
  3. spring.mvc.static-path-pattern=/fileData/**
  4. # 自定义路径
  5. # 注:自定义路径时,默认的四个文件夹下中的“META-INF下的resoures文件夹”仍然有效,其他三个文件夹失效
  6. # (此时:访问ip:端口号/fileData/时,相当于访问到了 “自定义的文件夹”和 “META-INF下的resoures文件夹”);
  7. # 注:搜索文件时,自定义的文件夹的优先级要高于默认的四个文件夹
  8. spring.resources.static-locations=file:D:/myFile/
  9. # 提示:如果我们显式地把自定义文件夹 和 默认的四个文件夹都写出来,那么都会有效(此时,优先级 从左至右 依次降低)
  10. #spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:D:/myFile/

 

^_^ 参考链接
               https://blog.csdn.net/catoop/article/details/50501706
               https://www.cnblogs.com/zxguan/p/8303001.html

^_^ 如有不当之处,欢迎指正

^_^ 本文已经被收录进《程序员成长笔记(二)》,笔者JustryDeng

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章