>  기사  >  데이터 베이스  >  데이터베이스 없이 Spring Boot 앱을 시작하는 방법: `hibernate.temp.use_jdbc_metadata_defaults` 문제를 극복합니까?

데이터베이스 없이 Spring Boot 앱을 시작하는 방법: `hibernate.temp.use_jdbc_metadata_defaults` 문제를 극복합니까?

DDD
DDD원래의
2024-11-08 04:57:02701검색

How to Start a Spring Boot App Without a Database: Overcoming the `hibernate.temp.use_jdbc_metadata_defaults` Issue?

데이터베이스 종속성 없이 Spring-Boot 앱을 시작하는 방법

문제

Spring-boot 데이터베이스에 종속된 애플리케이션은 데이터베이스가 다운될 때부터 문제가 발생할 수 있습니다. 이로 인해 hibernate.temp.use_jdbc_metadata_defaults 속성과 관련된 예외가 발생합니다. application.yml 파일에서 이 속성을 설정하면 런타임에 반영되지 않습니다.

해결 방법

데이터베이스 없이도 스프링 부트 애플리케이션을 시작하려면 다음을 구성합니다. 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

키 구성:

  • continueOnError: true - 데이터베이스 연결이 실패하더라도 계속됩니다.
  • initialize: false - 시작 시 연결 풀을 초기화하지 않습니다.
  • initialSize: 0 - 빈 연결 풀을 초기화합니다.
  • hibernate.temp.use_jdbc_metadata_defaults: false - 데이터베이스 스키마가 JDBC 메타데이터에서 자동으로 획득되지 않도록 지정합니다.

이러한 구성을 사용하면 spring-boot 애플리케이션은 데이터베이스 없이 시작되고, 데이터베이스가 사용 가능해지면 연결을 초기화하며, 다시 시작하거나 재배포할 필요 없이 데이터베이스 중단을 원활하게 처리합니다.

위 내용은 데이터베이스 없이 Spring Boot 앱을 시작하는 방법: `hibernate.temp.use_jdbc_metadata_defaults` 문제를 극복합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.