我有一個簡單的Springboot應用,可以用命令來運行。./mvnw spring-boot:run。如果我把資料庫的URI放在application.properties檔案中,這就可以正常作業,但問題是這個檔案是由Heroku使用的,而不是供我在本地使用。
所以我看到一個Stackoverflow的答案,說我可以簡單地制作另一個.properties檔案,但命名為application-dev.properties,然后當我運行我的應用程式時,當我將活動組態檔設定為dev時,將自動選擇正確的.properties檔案。
因此,我通過以下方式進行了嘗試:
- 使
檔案成為的一部分。 - 使
application.properties檔案使用Heroku的環境變數,因為這是我不想在本地使用的.properties檔案。 - 我創建了一個
.properties檔案,名為application-dev.properties,其中有這樣一行:
spring.data.mongodb.uri=mongodb srv://MY_NAME:[email protected]/Employees?retryWrites=true& w=majority
- 我像這樣運行應用程式。
./mvnw spring-boot:run -Dspring.profiles.active=dev - 應用程式失敗了,出現了大量不同的錯誤,因為它試圖使用
application.properties檔案而不是application-dev.properties檔案 。
錯誤資訊的部分內容:
org.springframework.beans.factory.UnsatisfiedDependencyException。創建名稱為'employeeController'的bean時出錯。通過欄位'employeeRepo'表達的依賴性未得到滿足。
uj5u.com熱心網友回復:
-Dspring.profiles.active是在運行Maven的JVM中設定spring.profiles.active系統屬性,而不是在運行你的應用程式的JVM中。要解決這個問題,請使用spring-boot.run.jvmArguments系統屬性來配置運行應用程式的JVM的引數:
./mwnw -Dspring-boot.run.jvmArguments="-Dspring.profile.active=dev"
另外,還有一個專門用于設定活動組態檔的屬性,它略微簡潔一些:
./mvnw spring-boot:run -Dspring-boot.run.profile=dev
您可以在Spring Boot的Maven插件參考檔案的相關部分了解更多資訊
。轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333317.html
標籤:
上一篇:如何在使用redux時顯示從api呼叫到一個組件的回應?
下一篇:試圖反轉陣列元素
