Maison  >  Article  >  base de données  >  Comment démarrer une application Spring Boot sans base de données : surmonter le problème « hibernate.temp.use_jdbc_metadata_defaults » ?

Comment démarrer une application Spring Boot sans base de données : surmonter le problème « hibernate.temp.use_jdbc_metadata_defaults » ?

DDD
DDDoriginal
2024-11-08 04:57:02691parcourir

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

Comment démarrer l'application Spring-Boot sans dépendance à la base de données

Problème

Spring-boot les applications dépendantes d'une base de données peuvent rencontrer des problèmes dès que la base de données est en panne. Cela entraîne une exception liée à la propriété hibernate.temp.use_jdbc_metadata_defaults. La définition de cette propriété dans le fichier application.yml ne se reflète pas au moment de l'exécution.

Solution

Pour démarrer une application Spring-boot même sans base de données, configurez les éléments suivants paramètres dans 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

Configuration des clés :

  • continueOnError : true - Continue même si la connexion à la base de données échoue.
  • initialize : false - N'initialise pas le pool de connexions au démarrage.
  • initialSize : 0 - Initialise un pool de connexions vide.
  • hibernate.temp.use_jdbc_metadata_defaults : false - Spécifie que le schéma de base de données ne doit pas être automatiquement acquis à partir des métadonnées JDBC.

Avec ces configurations, le spring-boot l'application démarrera sans la base de données, initialisera la connexion lorsque la base de données sera disponible et gérera de manière transparente les pannes de base de données sans nécessiter de redémarrage ou de redéploiement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn