Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie starte ich die Spring-Boot-App, ohne von der Datenbank abhängig zu sein?

Es war in der Tat eine harte Nuss zu knacken.

Nach viel, viel Recherche und tatsächlichem Debuggen von Spring-Boot, Spring, Hibernate, Tomcat-Pool usw., um es fertig zu bekommen.

Ich denke, dass es den Leuten, die versuchen, diese Art von Anforderung zu erfüllen, viel Zeit sparen wird.

Nachfolgend sind die erforderlichen Einstellungen aufgeführt, um die folgende Anforderung zu erfüllen

  1. Spring Boot-Apps starten problemlos, auch wenn die DB ausgefallen ist oder keine DB vorhanden ist.
  2. Apps nehmen die Verbindungen spontan auf, wenn DB hochfährt, was bedeutet, dass der Webserver nicht neu gestartet oder die Apps erneut bereitgestellt werden müssen.
  3. Es ist nicht erforderlich, den Tomcat zu starten oder die Apps neu bereitzustellen, wenn DB aus dem Ausführungszustand herunterfährt und wieder hochfährt.

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