我正在開發一個 API 來管理我作業的公司中的資料庫,問題是當我必須運行不同的測驗時,我必須使用“真實的”開發資料庫(在 h2 中),那里有一些真實的資料。
我想了想,我想做的是創建一個新的 h2 資料庫,可以在測驗階段開始,并用它來測驗我所有的 Controller 方法。
問題是我不知道如何在 Spring Boot 中實作這一點。如果你能幫助我,我將不勝感激。
把它們加起來:
- 我有一個 h2 資料庫
- 我想使用輔助 h2 進行測驗
- 我怎么能做到這一點?
謝謝!
uj5u.com熱心網友回復:
讓我們假設您有 2 個環境——“生產”和“測驗”。
第一步:為每個環境定義一個組態檔
application.properties為每個環境保留一個檔案。每個都將包含自己的資料庫設定。像這樣:
生產: application-production.properties
#Start: For MySQL 8.0 database.
spring.datasource.url= jdbc:mysql://${DB_IP}:${DB_PORT}/${DB_SCHEMA}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWD}
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
#End: For MySQL 8.0 database.
spring.sql.init.platform=mysql
測驗: application-testing.properties
# Start: For H2 in-memory database.
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=secret
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
# End: For H2 in-memory database.
spring.sql.init.platform=h2
第 2 步:構建您的應用程式可引導 JAR
這里沒有什么可解釋的。:)
第 3 步:運行 JAR 時傳遞組態檔名稱
- 對于測驗環境:
$ java -jar -Dspring.profiles.active=testing <spring-boot-application-jar> - 對于生產環境:
$ java -jar -Dspring.profiles.active=production <spring-boot-application-jar>
第一個將使用application-testing.properties,第二個將使用application-production.properties。
還有一些其他因素,例如默認屬性application.properties和基于組態檔的屬性中的特定屬性等,您可以在Spring 檔案中閱讀這些內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/366548.html
