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
- Las aplicaciones de arranque de Spring comenzarán bien incluso si la base de datos está inactiva o no hay base de datos.
- 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.
- 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