spring配置文件加載順序
1.application.properties加載
Spring Boot啟動會掃描以下位置的application.properties或者application.yml文件作為Spring Boot的默認配置文件
bootstrap.yml(bootstrap.properties)與application.yml(application.properties)執行順序
bootstrap優先級比application更高
application:配置文件這個容易理解,主要用於SpringBoot項目的自動化配置。
bootstrap:配置文件有以下幾個應用場景 :
1. 使用SpringCloud Config配置中心時,這時需要在bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
2. 一些固定的不能被覆蓋的屬性;
3. 一些加密/解密的場景。
2.配置文件加載位置
1. file:/config/
2. file:/
3. classpath:/config/
4. classpath:/
springboot會加載所有的配置文件,並按優先級從上到下,將低優先級的配置內容覆蓋 -- 高低級可以形成互補
3.外部配置文件
-
開發者工具
Devtools全局配置參數; -
單元測試上的 [
@TestPropertySource](mailto:@TestPropertySource)` 注解指定的參數; -
單元測試上的 [
@SpringBootTest](mailto:@SpringBootTest)` 注解指定的參數;
-
命令行指定的參數,如
java -jar springboot.jar --name="xxx"; -
命令行中的
SPRING_APPLICATION_JSONJSON指定參數, 如java -Dspring.application.json='{"name":"xxx"}' -jar springboot.jar -
ServletConfig初始化參數;
-
ServletContext初始化參數;
-
JNDI參數(如
java:comp/env/spring.application.json); -
Java系統參數(來源:
System.getProperties()); -
操作系統環境變量參數;
-
RandomValuePropertySource 隨機數,僅匹配:
ramdom.*; -
JAR包外面的配置文件參數(
application-{profile}.properties(YAML)) -
JAR包里面的配置文件參數(
application-{profile}.properties(YAML)) -
JAR包外面的配置文件參數(
application.properties(YAML)) -
JAR包里面的配置文件參數(
application.properties(YAML)) -
@Configuration (
mailto:@Configuration)配置文件上 @PropertySource(mailto:@PropertySource) 注解加載的參數; -
默認參數(通過
SpringApplication.setDefaultProperties指定);
