首页 >数据库 >mysql教程 >如何在没有数据库的情况下启动 Spring Boot 应用程序:克服'hibernate.temp.use_jdbc_metadata_defaults”问题?

如何在没有数据库的情况下启动 Spring Boot 应用程序:克服'hibernate.temp.use_jdbc_metadata_defaults”问题?

DDD
DDD原创
2024-11-08 04:57:02739浏览

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 文件中设置此属性不会在运行时反映出来。

解决方案

要在没有数据库的情况下启动 spring-boot 应用程序,请配置以下内容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