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

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