ホームページ  >  記事  >  データベース  >  データベースなしで Spring Boot アプリを起動する方法: 「hibernate.temp.use_jdbc_metadata_defaults」 問題を解決するには?

データベースなしで Spring Boot アプリを起動する方法: 「hibernate.temp.use_jdbc_metadata_defaults」 問題を解決するには?

DDD
DDDオリジナル
2024-11-08 04:57:02690ブラウズ

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

キー構成:

  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。