Heroku 上的 Dropwizard DataSourceFactory 仅 DATABASE_URL

Dropwizard DataSourceFactory on Heroku with just DATABASE_URL

我正在尝试在 heroku 和 dokku ("open-source heroku") 上部署一个 Dropwizard 应用程序,但我被困在数据库的配置上。原因是我只从 Heroku 获得了一个单线连接 url:

DATABASE_URL=postgres://postgres:SOME_PASSWORD@172.17.0.1:5432/lolipop

从中获取 DataSourceFactory 到我的配置中的最佳方法是什么?

import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

public class MyConfiguration extends Configuration {
    @Valid
    @NotNull
    private DataSourceFactory database = new DataSourceFactory();

    private List<String> allowedOrigins;

    @JsonProperty("database")
    public DataSourceFactory getDataSourceFactory() {
        return database;
    }

    @JsonProperty("database")
    public void setDataSourceFactory(DataSourceFactory dataSourceFactory) {
        this.database = dataSourceFactory;
    }
}

我希望配置文件看起来像这样

database:
    driverClass: org.postgresql.Driver
    url: ${DATABASE_URL}

尝试在 Heroku 上使用 JDBC_DATABASE_URL,如 Connecting to Relational Databases on Heroku with Java

中所述

但是,如果您更愿意自己解析 DATABASE_URL(因为它是规范表示),您可以使用 heroku-jdbc 库。