从资源中使用config.yaml启动Dropwizard

时间:2018-03-13 17:12:56

标签: java maven sbt dropwizard

我有一个回答问题的问题。我使用Dropwizard和SBT(工作得非常好)。 如果我运行我的应用程序,我将其打包:

$ sbt clean assembly

然后运行应用程序:

$ java -jar APPLICATION.jar server

问题在于这个命令Dropwizard没有加载我的配置文件(config.yaml),它位于资源中。 关于Dropwizard Docs我总是要把配置文件作为参数给出:

$ java -jar APPLICATION.jar server config.yaml

这很好用,它加载应用程序,但有可能告诉Dropwizard直接加载config.yaml文件,因为我在config.yaml文件中的配置是静态的,它总是相同的。数据库等从服务器阶段更改为服务器阶段的设置作为环境变量,我使用EnvironmentVariableSubstitutor加载。

由于

1 个答案:

答案 0 :(得分:1)

使用ResourceConfigurationSourceProvider

@Override
public void initialize(final Bootstrap<ExampleConfiguration> bootstrap) {  
  bootstrap.setConfigurationSourceProvider(new ResourceConfigurationSourceProvider());
  // The rest of initialize...
}

然后调用应用程序,如:

java -jar APPLICATION.jar server /resource-config.yaml

(请注意最初的/