springboot2.0入門(八)-- profile啟動文件配置


一、不同環境使用不同配置文件

  將application.yml文件拷貝三份,在文件末尾分別對應開發/生產/測試,dev/prod/test/文件夾,其中application.yml 中默認激活開發環境

 

修改不同配置文件的啟動端口,在application.yml文件中添加具體啟動的配置文件,可以看到不同的啟動端口,使用maven的打包命令,將項目打入jar包:

 

如果打包出錯,在xml中配置跳過test測試,進入到jar包目錄,使用java -jar  啟動項目

<!-- 跳打包test文件報錯-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
               <testFailureIgnore>true</testFailureIgnore>
             </configuration>
            </plugin>

 

默認以開發環境8810端口啟動,可以在啟動時指定配置文件:

 改用生產環境的配置文件:

java -jar helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

可以發現項目以8888端口啟動

二、在idea中配置啟動文件:

VM options設置啟動參數 -Dspring.profiles.active=prod

Program arguments設置 --spring.profiles.active=prod

Active Profile 設置 prod

需要注意的是,上面三種方式,選一種即可:

 

2、配置文件的優先級:

外部大於內部,特指大於泛指

 下面帶有dev\prod\test特指的文件優先級更高

 

 三、文件優先級說明

 spring boot 啟動會掃描以下位置的application.properties或者application.yml文件作為Spring boot的默認配置文件

–file:./config/
–file:./
–classpath:/config/
–classpath:/

 

 

 

 

以上是按照優先級從高到低的順序,所有位置的文件都會被加載,高優先級配置內容會覆蓋低優先級配置內容。

SpringBoot會從這四個位置全部加載主配置文件,如果高優先級中配置文件屬性與低優先級配置文件不沖突的屬性,則會共同存在—互補配置。

我們也可以通過配置spring.config.location來改變默認配置

java -jar Xxx-version.jar  --spring.config.location=D:/application.properties

 

配置加載順序

SpringBoot也可以從以下位置加載配置:優先級從高到低;高優先級的配置覆蓋低優先級的配置,所有的配置會形成互補配置。

  1. 命令行參數
  2. 來自java:comp/env的JNDI屬性
  3. Java系統屬性(System.getProperties())
  4. 操作系統環境變量
  5. RandomValuePropertySource配置的random.*屬性值
  6. jar包外部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
  7. jar包內部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
  8. jar包外部的application.properties或application.yml(不帶spring.profile)配置文件
  9. jar包內部的application.properties或application.yml(不帶spring.profile)配置文件
  10. @Configuration注解類上的@PropertySource
  11. 通過SpringApplication.setDefaultProperties指定的默認屬性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM