Mysql
 sql >> Base de données >  >> RDS >> Mysql

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

C'était en effet une noix difficile à casser.

Après de nombreuses recherches et débogage du spring-boot, spring, hibernate, tomcat pool, etc. pour le faire.

Je pense que cela fera gagner beaucoup de temps aux personnes qui essaient d'atteindre ce type d'exigence.

Vous trouverez ci-dessous les paramètres requis pour atteindre l'exigence suivante

  1. Les applications de démarrage Spring démarreront correctement même si la base de données est en panne ou s'il n'y a pas de base de données.
  2. Les applications capteront les connexions à la volée au fur et à mesure que la base de données s'ouvrira, ce qui signifie qu'il n'est pas nécessaire de redémarrer le serveur Web ou de redéployer les applications.
  3. Il n'est pas nécessaire de démarrer le tomcat ou de redéployer les applications, si la base de données passe de l'état d'exécution et se rallume.

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