首页 > 解决方案 > Spring Boot 如何知道 Heroku 的 DATABASE_URL 配置变量?

问题描述

短篇故事:

Spring Boot 究竟是如何解析DATABASE_URLconfig var 的?在我的本地 PC 上设置具有相同名称的环境属性无效。涉及 Spring Boot 库中的哪些类?全文搜索DATABASE_URL不返回任何内容。

很长的故事:

我最近向 Heroku 部署了一个简单的 Spring Boot + JPA 应用程序。我的 heroku已经配置了 Postgres 插件。

在我的第一次部署期间,我只想确认应用程序可以正确构建和启动。但令我惊讶的是,该应用程序立即连接到 Heroku 的DATABASE_URLconfig var 中配置的 Postgres 数据库:

2018-11-30T09:28:51.054688+00:00 app[web.1]: 2018-11-30 09:28:51.054  INFO 4 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL95Dialect

这使我想到了上面已经发布的问题。

我正在使用 Spring Boot 2.1.0.,这是一个由Spring Initializr创建的简单应用程序,带有+ + + 。包括在内,因为:WebJPAH2PostgreSQLH2

标签: javaspringpostgresqlspring-bootheroku

解决方案


Spring不知道DATABASE_URL(据我所知)。但它确实会检测并自动使用SPRING_DATASOURCE_URLHeroku Java buildpack 在运行时设置的 .

您可以在 Heroku 文档中阅读有关使用 Java 连接到 Heroku 上的关系数据库的更多信息


推荐阅读