Era realmente um osso duro de roer.
Depois de muita e muita pesquisa e realmente depurando o spring-boot, spring, hibernate, tomcat pool, etc.
Eu acho que isso economizará muito tempo para as pessoas que tentam atingir esse tipo de requisito.
Abaixo estão as configurações necessárias para atingir o seguinte requisito
- Os aplicativos de inicialização por mola iniciarão bem mesmo se o banco de dados estiver inativo ou se não houver banco de dados.
- Os aplicativos capturarão as conexões rapidamente à medida que o banco de dados for ativado, o que significa que não há necessidade de reiniciar o servidor da Web ou reimplantar os aplicativos.
- Não há necessidade de iniciar o tomcat ou reimplantar os aplicativos, se o banco de dados sair do estado de execução e voltar a funcionar.
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