如何啓動一個獨立的Spring啓動JPA應用程序 - 而不是通過cli--通過選擇數據庫來獲取數據,例如localhost:5432/my_db;或192.168.1.100:5432/our_db,或example.com:5432/their_db?Spring Boot JPA數據庫選擇
煤礦目前使用的一個在包含application.properties文件:提前
如何啓動一個獨立的Spring啓動JPA應用程序 - 而不是通過cli--通過選擇數據庫來獲取數據,例如localhost:5432/my_db;或192.168.1.100:5432/our_db,或example.com:5432/their_db?Spring Boot JPA數據庫選擇
煤礦目前使用的一個在包含application.properties文件:提前
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/my_db
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
感謝因爲你很可能需要配置用戶名和密碼,以及,我建議創建單獨的application-mydatasource.properties
文件爲每個數據源配置。然後您將根據設置活動配置文件激活您想要使用的數據源。您可以設置活動的配置文件無論是在application.properties
(spring.profiles.active
)或通過命令行參數:
$ java -jar -Dspring.profiles.active=mydatasource demo-0.0.1-SNAPSHOT.jar
的application-mydatasource.properties
將然後在application.properties
覆蓋任何屬性。我相信您還需要將spring.profiles=
設置爲可用配置文件列表。
我認爲屬性文件必須採用以下格式:'application- {profile} .properties'。另外,'spring.profiles ='應該是'spring.profiles.active =',對嗎? – 2015-10-01 20:07:09
@EricFrancis,你是正確的屬性文件的名稱。我糾正了我的答案。但是因爲我將活動配置文件作爲命令行傳遞,所以我不必在spring.profiles.active中指定活動配置文件。 – gyoder 2015-10-02 17:07:49
「YAML文件實際上是一系列由---行分隔的文檔,並且每個文檔都被分別解析爲扁平化的地圖。 如果YAML文檔包含spring.profiles鍵,則profile值(逗號分隔配置文件列表)被饋送到Spring Environment.acceptsProfiles()中,並且如果這些配置文件中的任何配置文件處於活動狀態,則該文檔將包含在最終合併中(否則不會)。「 'spring.profiles'屬性只在YAML文件中有效。 – hellectronic 2017-08-28 10:21:10
除了@profile標籤的另一個選項,你將不得不在每一個環境來聲明,我們將部署應用程序,你可以在Spring引導使用標籤:
@ConditionalOnProperty(NAME =「PROPERTYNAME」 havingValue =「propertyValue」)
並聲明一個屬性來決定你想在每種情況下加載哪個數據庫!
希望正在幫助!
如何做出選擇?什麼是標準? – geoand 2014-08-27 21:10:40