您可以使用可以在 Heroku 应用程序的设置选项卡中配置的Config Vars 。Config Vars 将作为环境变量公开给您的应用程序。由于 Spring Boot 可以将环境变量映射到应用程序属性,您只需设置:
SPRING_DATASOURCE_URL
SPRING_DATASOURCE_USER
SPRING_DATASOURCE_PASSWORD
SPRING_DATASOURCE_DRIVER-CLASS-NAME
它们将被映射到:
spring.datasource.url
spring.datasource.user
spring.datasource.password
spring.datasource.driver-class-name
现在您所要做的就是提取相关值。可以在heroku postgres 管理面板中检查完整的数据库配置。选择您要连接的数据库,您将立即看到 和 的SPRING_DATASOURCE_USER
值SPRING_DATASOURCE_PASSWORD
。SPRING_DATASOURCE_URL
必须像这样构造:
jdbc:postgresql://<Host>:<Port>/<Database>
其中<Host>
,<Port>
和<Database>
必须替换为来自数据库连接页面的相应值。最后但并非最不重要的SPRING_DATASOURCE_DRIVER-CLASS-NAME
必须设置为org.postgresql.Driver
.
通过这种方式,您可以使用 Spring Boot 的内置功能,而不是向应用程序添加特定于环境的配置。但是请注意,Spring Boot 具有读取外部配置的特定顺序。所以你必须确保没有
- 命令行参数(通过Procfile传递)
- 来自 java:comp/env 的 JNDI 属性(不知道这些可能来自 Heroku。)
- Java 系统属性(也可以通过 Procfile 作为
-D
参数传递)
因为那些会覆盖操作系统环境变量。