sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo iniciar la aplicación spring-boot sin depender de la base de datos?

De hecho, fue un hueso duro de roer.

Después de mucha, mucha investigación y, de hecho, depurar Spring-Boot, Spring, Hibernate, Tomcat Pool, etc. para hacerlo.

Creo que ahorrará mucho tiempo a las personas que intentan cumplir con este tipo de requisito.

A continuación se muestran los ajustes necesarios para lograr el siguiente requisito

  1. Las aplicaciones de arranque de Spring comenzarán bien incluso si la base de datos está inactiva o no hay base de datos.
  2. Las aplicaciones tomarán las conexiones sobre la marcha a medida que aparezca la base de datos, lo que significa que no es necesario reiniciar el servidor web ni volver a implementar las aplicaciones.
  3. No es necesario iniciar Tomcat o volver a implementar las aplicaciones, si la base de datos deja de estar en ejecución y vuelve a aparecer.

aplicación.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