Spring Boot配置特定屬性spring.profiles
SpringBoot能使用application- {你的自定義profile名稱myProfileName} .properties模式新增任何你指定配置檔案到其屬性檔案。
要載入特定的配置檔案屬性檔案,我們可以使用命令列選項-Dspring.profiles.active = myProfileName。
預設預設SpringBoot是載入application.properties,無需任何-Dspring.profile.active選項,或使用-Dspring.profiles.active = default來載入。預設屬性檔案也可以命名為application-default.properties。
預設配置檔案application.properties中指定的任何屬性將被你指定載入的配置檔案中的的屬性覆蓋。
也可以在application.properties中指定啟用配置檔案。
spring.profiles.active=prod
比如你有三個配置檔案:
src/main/resources/application.properties(預設的)
src/main/resources/application-dev.properties(你指定的dev)
src/main/resources/application-prod.properties(你指定的prod)
如果在application.properties中有:
spring.profiles.active=prod
那麼SpringBoot將載入application-prod.properties內容。
如果你在程式碼中使用配置檔案中的變數:
@Component <b>public</b> <b>class</b> ClientBean { @Value(<font>"${app.window.width}"</font><font>) <b>private</b> <b>int</b> width; @Value(</font><font>"${app.window.height}"</font><font>) <b>private</b> <b>int</b> height; </font>
如果application-prod.properties和application.properties都有app.window.width和app.window.height,那麼以prod中配置的值為主。
spring.profile.include屬性
在application-prod.properties還可以加入
spring.profiles.include=throttling,db
這是無條件地新增活動配置檔案(以逗號分隔)。此屬性新增的配置檔案不會根據某些條件或命令列開關決定是否新增,而是始終無條件新增它們。
上述配置是就載入了:
src/main/resources/application-throttling.properties
src/main/resources/application-db.properties
這兩個配置檔案中的內容。