SpringBoot配置文件可以使用yml格式和properties格式
分別的默認命名為:application.yml、application.properties
存放目錄
SpringBoot配置文件默認可以放到以下目錄中,可以自動讀取到:
- 項目根目錄下
- 項目根目錄中config目錄下
- 項目的resources目錄下
- 項目resources目錄中config目錄下
讀取順序
如果在不同的目錄中存在多個配置文件,它的讀取順序是:
1、config/application.properties(項目根目錄中config目錄下)
2、config/application.yml
3、application.properties(項目根目錄下)
4、application.yml
5、resources/config/application.properties(項目resources目錄中config目錄下)
6、resources/config/application.yml
7、resources/application.properties(項目的resources目錄下)
8、resources/application.yml
注:
1、如果同一個目錄下,有application.yml也有application.properties,默認先讀取application.properties。
2、如果同一個配置屬性,在多個配置文件都配置了,默認使用第1個讀取到的,后面讀取的不覆蓋前面讀取到的。
3、創建SpringBoot項目時,一般的配置文件放置在“項目的resources目錄下”
SpringBoot資源文件的存放位置設置
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/
---------------------
作者:justry_deng
來源:CSDN
原文:https://blog.csdn.net/justry_deng/article/details/81406752
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
多目錄問題
直接上配置,如下:
在springboot的application.properties的配置文件中加入:
spring.resources.static-locations=file:D://uploads
D://images -->是你存放的外部文件的一個文件夾地址
然后加入一個這個問價你的映射:
spring.mvc.static-path-pattern=/**
注意:里面必須為 /**,不然你項目的其他靜態資源就會訪問不到
假如你的D://uploads下面兩個文件一個存放圖片的image文件里面有image.jpg,一個存放excel的excel文件里面有excel.xls
你就可以啟動項目然后在地址欄輸入:localhoset/images/image.jpg訪問image.jpg圖片
localhoset/excel/excel.xls訪問excel.xls文件
其實就是規定一個你項目外部文件的地址,然后在項目內部映射這個外部文件地址,因為springboot是內置tomac服務器
---------------------
作者:duangecho
來源:CSDN
原文:https://blog.csdn.net/duangecho/article/details/80099810
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!