首頁  >  文章  >  資料庫  >  如何在沒有資料庫的情況下啟動 Spring Boot 應用程式:克服“hibernate.temp.use_jdbc_metadata_defaults”問題?

如何在沒有資料庫的情況下啟動 Spring Boot 應用程式:克服“hibernate.temp.use_jdbc_metadata_defaults”問題?

DDD
DDD原創
2024-11-08 04:57:02617瀏覽

How to Start a Spring Boot App Without a Database: Overcoming the `hibernate.temp.use_jdbc_metadata_defaults` Issue?

如何在沒有數據庫依賴的情況下啟動Spring-Boot 應用

問題

Spring-boot依賴資料庫的應用程式可能會在資料庫關閉時遇到問題。這會導致與 hibernate.temp.use_jdbc_metadata_defaults 屬性相關的例外狀況。在 application.yml 檔案中設定此屬性不會在執行時反映出來。

解決方案

要在沒有資料庫的情況下啟動spring-boot 應用程序,請配置以下內容application.yml 中的設定:

spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/schema
    username: root
    password: root
    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

Key設定:

  • continueOnError: true - 即使資料庫連線失敗也會繼續。
  • initialize: false - 不在啟動時初始化連線池。
  • initialSize: 0 - 初始化一個空連接池。
  • hibernate.temp.use_jdbc_metadata_defaults: false - 指定不應從 JDBC 元資料自動取得資料庫架構。

透過這些配置,spring-boot應用程式將在沒有資料庫的情況下啟動,當資料庫變為可用,並無縫處理資料庫中斷,無需重新啟動或重新部署。

以上是如何在沒有資料庫的情況下啟動 Spring Boot 應用程式:克服“hibernate.temp.use_jdbc_metadata_defaults”問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn