È stata davvero una noce dura da decifrare.
Dopo molte e molte ricerche e aver eseguito il debug di spring-boot, spring, hibernate, Tomcat pool, ecc. per farlo.
Penso che farà risparmiare molto tempo alle persone che cercano di soddisfare questo tipo di requisiti.
Di seguito sono riportate le impostazioni necessarie per soddisfare il seguente requisito
- Le app di avvio primaverile si avvieranno correttamente anche se il DB è inattivo o non è presente alcun DB.
- Le app rileveranno le connessioni al volo non appena il DB viene visualizzato, il che significa che non è necessario riavviare il server Web o ridistribuire le app.
- Non è necessario avviare Tomcat o ridistribuire le app, se il DB si interrompe dallo stato di esecuzione e si riavvia.
applicazione.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