Spring Boot和Hibernate:即使没有与数据库的连接,也要启动应用程序

费尔南多·弗拉佐(FernandoFrazão)

我的Spring Boot应用程序需要连接到两个不同的数据库。第一个数据库(主数据库)与localhost应用程序安装在同一服务器上,另一个数据库(辅助数据库)安装在远程服务器上,并且并非始终可用(用于维护,备份,测试等)。

我使用以下配置(application.properties)。

# main connection
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/?autoReconnect=true&verifyServerCertificate=false&useSSL=false&requireSSL=false
spring.datasource.username=emater
spring.datasource.password=emater

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

# secondary connection
planejamento.datasource.driverClassName=com.mysql.jdbc.Driver
planejamento.datasource.url=jdbc:mysql://10.22.1.4/?verifyServerCertificate=false&useSSL=false&requireSSL=false
planejamento.datasource.username=emater
planejamento.datasource.password=emater
planejamento.datasource.testWhileIdle = false

#config hibernate
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQLSpatial56Dialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
spring.jpa.show-sql=true
spring.jpa.format-sql=true
spring.jpa.use-sql-comments=true
spring.jpa.hibernate.enable_lazy_load_no_trans=true

初始化应用程序时,休眠会尝试连接到两个数据库。如果第二个数据库当时不可用,则会引发异常并中止应用程序初始化。

我是否可以使用任何属性来防止应用程序在启动时中止?

我应该怎么办?

弗拉德·米哈西亚(Vlad Mihalcea)

休眠时,Hibernate需要连接到数据库,SessionFactory以便我可以DatabaseMetaData从数据库中提取Connection

使用DatabaseMetaData,它需要找出:

  • 当前的目录和架构
  • 如何限定标识符
  • 如果数据库支持临时表
  • 如果DDL导致事务提交
  • 如果驱动程序支持可滚动 ResultSet
  • 如果驱动程序支持批量更新
  • 如果驱动程序返回IDENTITY列的生成键

SessionFactory初始化时会解决此信息,因此最好在关联数据库也可用的情况下延迟启动新的MicroService。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有 oracle 数据库重置连接的容器化 Spring Boot 应用程序

来自分类Dev

使用spring-boot连接到spring-batch和应用程序数据库

来自分类Dev

如何限制运行微服务的Spring Boot应用程序创建的数据库连接

来自分类Dev

Dockerized Spring Boot应用程序连接到数据库Docker映像

来自分类Dev

从Spring Boot应用程序连接到本地MySQL数据库时出错

来自分类Dev

无法从 Spring Boot 应用程序初始化数据库连接

来自分类Dev

具有H2文件数据库的Spring Boot应用程序

来自分类Dev

如何在不依赖数据库的情况下启动spring-boot应用程序?

来自分类Dev

如何在不依赖数据库的情况下启动spring-boot应用程序?

来自分类Dev

如何在不依赖数据库的情况下启动spring-boot应用程序?

来自分类Dev

从 Spring 应用程序停止和重新启动基于文件的 H2 数据库

来自分类Dev

如何实现多租户Spring Boot应用程序(每个用户都有自己的数据库)

来自分类Dev

具有多个模式/数据库的 spring-boot 应用程序中的实体管理器错误

来自分类Dev

Spring 集成测试模块从单独的模块运行应用程序,没有数据库配置的属性

来自分类Dev

Spring Boot和Hibernate MySQL数据库连接不断断开

来自分类Dev

Spring应用程序拒绝使用指定的用户名连接到MySql数据库

来自分类Dev

在Spring Boot应用程序中即时配置数据库

来自分类Dev

在Spring Boot应用程序中使用Azure KeyVault作为数据库密码

来自分类Dev

如何在JPA / Hibernate应用程序中配置连接池(没有Spring)?

来自分类Dev

Hibernate没有使用Spring Boot在PostgreSql中创建数据库

来自分类Dev

具有Spring Boot和Hibernate的多租户和中央数据库

来自分类Dev

Apache Camel 路由和 Spring boot:应用程序启动

来自分类Dev

带有Redis的Spring Boot应用程序在启动时插入数据

来自分类Dev

具有自动配置的Spring Data JPA应用程序的多个数据库

来自分类Dev

Spring boot 应用程序启动错误

来自分类Dev

Spring Boot 应用程序无法启动?

来自分类Dev

将PostgreSQL数据库连接到Spring应用程序(均在docker中运行)连接被拒绝

来自分类Dev

spring-boot没有创建hsqldb数据库

来自分类Dev

spring-boot没有创建hsqldb数据库

Related 相关文章

  1. 1

    具有 oracle 数据库重置连接的容器化 Spring Boot 应用程序

  2. 2

    使用spring-boot连接到spring-batch和应用程序数据库

  3. 3

    如何限制运行微服务的Spring Boot应用程序创建的数据库连接

  4. 4

    Dockerized Spring Boot应用程序连接到数据库Docker映像

  5. 5

    从Spring Boot应用程序连接到本地MySQL数据库时出错

  6. 6

    无法从 Spring Boot 应用程序初始化数据库连接

  7. 7

    具有H2文件数据库的Spring Boot应用程序

  8. 8

    如何在不依赖数据库的情况下启动spring-boot应用程序?

  9. 9

    如何在不依赖数据库的情况下启动spring-boot应用程序?

  10. 10

    如何在不依赖数据库的情况下启动spring-boot应用程序?

  11. 11

    从 Spring 应用程序停止和重新启动基于文件的 H2 数据库

  12. 12

    如何实现多租户Spring Boot应用程序(每个用户都有自己的数据库)

  13. 13

    具有多个模式/数据库的 spring-boot 应用程序中的实体管理器错误

  14. 14

    Spring 集成测试模块从单独的模块运行应用程序,没有数据库配置的属性

  15. 15

    Spring Boot和Hibernate MySQL数据库连接不断断开

  16. 16

    Spring应用程序拒绝使用指定的用户名连接到MySql数据库

  17. 17

    在Spring Boot应用程序中即时配置数据库

  18. 18

    在Spring Boot应用程序中使用Azure KeyVault作为数据库密码

  19. 19

    如何在JPA / Hibernate应用程序中配置连接池(没有Spring)?

  20. 20

    Hibernate没有使用Spring Boot在PostgreSql中创建数据库

  21. 21

    具有Spring Boot和Hibernate的多租户和中央数据库

  22. 22

    Apache Camel 路由和 Spring boot:应用程序启动

  23. 23

    带有Redis的Spring Boot应用程序在启动时插入数据

  24. 24

    具有自动配置的Spring Data JPA应用程序的多个数据库

  25. 25

    Spring boot 应用程序启动错误

  26. 26

    Spring Boot 应用程序无法启动?

  27. 27

    将PostgreSQL数据库连接到Spring应用程序(均在docker中运行)连接被拒绝

  28. 28

    spring-boot没有创建hsqldb数据库

  29. 29

    spring-boot没有创建hsqldb数据库

热门标签

归档