我试图在heroku和dokku("开源heroku")上部署Dropwizard-app,但我仍然坚持使用数据库的配置。原因是我只提供了来自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}
答案 0 :(得分:2)
按照Connecting to Relational Databases on Heroku with Java
中的说明尝试在Heroku上使用JDBC_DATABASE_URL
但是,如果您更愿意解析DATABASE_URL
您自己(因为它是规范表示),您可以使用heroku-jdbc库。