SpringBoot屬性加載順序
順序 | 形式 |
---|---|
1 | 在命令行中傳入的參數 |
2 | SPRING_APPLICATION_JSON中的屬性。SPRING_APPLICATION_JSON是以JSON的格式配置在系統環境變量中的內容 |
3 | java:comp/env中的JNDI屬性 |
4 | Java的系統屬性,可以通過System.getProperties()獲得的內容 |
5 | 操作系統的環境變量 |
6 | 通過random.*配置的隨機屬性 |
7 | 位於當前應用jar包之外,針對不同{profile}環境的配置文件內容,例如application-{profile}.properties或是YAML定義的配置文件 |
8 | 位於當前應用jar包之內,針對不同{profile}環境的配置文件內容,例如application-{profile}.properties或是YAML定義的配置文件 |
9 | 位於當前應用jar包之外的application.properties和YAML配置內容 |
10 | 位於當前應用jar包之內的application.properties和YAML配置內容 |
11 | 在@Configuration注解修改的類中,通過@PropertySource注解定義的屬性 |
12 | 應用默認屬性,使用SpringApplication.setDefaultProperties定義的內容 |
那么現在有這幾種解決方案:
- 直接在本地配置一套,使用本地配置(根據屬性加載順序,遠程加載不到,那么才到本地加載)
- 使用1~6優先級的形式設置所缺的屬性
第一種方案可以,但是git在提交時會提示更改,而配置文件不應該添加到.gitignore,所以,對不起,我不能接受代碼的凌亂感。我選擇第二鍾,並且將配置屬性通過啟動參數的形式注入到項目中,下次我不想要個直接刪了即可,同時也不影響git的status,干凈。
IDEA項目啟動參數配置
點擊項目下拉按鈕后選擇"Edit Configurations"
在"Configuration"下的VM options中填入需要的屬性值
填寫的格式如下:
-Dserver.port=8888 -Dspring.redis.port=6378 -D"你想配置的參數名"="參數值"
多個參數之間使用空格隔開。當然你也可以使用環境變量(Environment variables)和 Program arguments添加。