在沒有資料庫依賴的情況下啟動Spring Boot 應用程式
使用使用資料庫的Spring Boot 應用程式時,可能會在資料庫不可用時遇到錯誤令人沮喪。若要解決此問題,應將應用程式配置為即使無法存取資料庫也能成功啟動。
原始錯誤的原因
初始錯誤期間遇到的錯誤嘗試在沒有資料庫的情況下啟動Spring Boot 應用程式源自Hibernate 及其依賴資料庫中的元資料來決定表結構和關係。當資料庫不可用時,Hibernate 無法取得必要的元數據,從而導致錯誤。
解決方案:設定Spring Boot 和Hibernate
要解決此問題,請在application.yml中設定以下屬性file:
spring:
datasource:
continueOnError: true
initialize: false
initialSize: 0
timeBetweenEvictionRunsMillis: 5000
minEvictableIdleTimeMillis: 5000
minIdle: 0
jpa:
show-sql: true
hibernate:
ddl-auto: none
naming_strategy: org.hibernate.cfg.DefaultNamingStrategy
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
hbm2ddl:
auto: none
temp:
use_jdbc_metadata_defaults: false
- spring.datasource.continueOnError:此屬性告訴Spring即使在初始化資料來源時出現錯誤也繼續啟動應用程式。
- spring.datasource。初始化:此屬性指定是否在啟動時初始化資料來源。將其設為 false 表示在實際嘗試連線之前不會初始化資料來源。
- spring.datasource.initialSize:此屬性設定啟動時要建立的初始連線數。設定為 0 表示啟動時不會建立連線。
- spring.datasource.timeBetweenEvictionRunsMillis:此屬性決定資料來源檢查空閒連線以逐出的頻率(以毫秒為單位)。
- spring.datasource.minEvictableIdleTimeMillis:此屬性設定空閒連線可以保持的最短時間(以毫秒為單位)
- spring.datasource.minIdle:此屬性設定池中保留的最小空閒連線連線數。
- spring.jpa.hibernate.ddl -auto:此屬性設定 Hibernate 對資料庫模式執行的操作。將其設為 none 意味著不應對資料庫模式進行任何變更。
- spring.jpa.hibernate.dialect:此屬性指定要使用的 Hibernate 方言。使用適當的方言可確保 Hibernate 產生與資料庫相容的 SQL。
- spring.jpa.hibernate.properties.hibernate.temp.use_jdbc_metadata_defaults:此屬性指定 Hibernate 是否應使用 JDBC 元資料來決定表結構和關聯。將其設為 false 可防止 Hibernate 依賴資料庫,而是使用網域類別中的映射註解來定義實體。
解的優點
透過實現這些配置,Spring Boot 應用程式:
- 即使資料庫無法使用也能成功啟動。
- 當資料庫可用時動態建立連接,從而消除了需要重新啟動。
- 優雅地處理資料庫中斷,而不影響正在運行的應用程式。
以上是如何在沒有資料庫依賴的情況下啟動Spring Boot應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!