我有一个回答问题的问题。我使用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加载。
由于
答案 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
(请注意最初的/
)