ホームページ >データベース >mysql チュートリアル >データベースに依存せずに Spring Boot アプリケーションを起動するにはどうすればよいですか?

データベースに依存せずに Spring Boot アプリケーションを起動するにはどうすればよいですか?

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

How to Start a Spring Boot Application Without Database Dependency?

データベースに依存しない 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: このプロパティは、EvictableIdleTimeMillis の最小時間 (ミリ秒単位) を設定します。アイドル状態の接続は、エビクションの対象となる前にプールに残ることができます。
  • 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 中国語 Web サイトの他の関連記事を参照してください。

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