Mysql
 sql >> Database >  >> RDS >> Mysql

Come avviare l'app di avvio a molla senza dipendere dal database?

È 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

  1. Le app di avvio primaverile si avvieranno correttamente anche se il DB è inattivo o non è presente alcun DB.
  2. 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.
  3. 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