【发布时间】:2015-02-07 17:54:27
【问题描述】:
一个典型的 DropWizard 应用程序指定一个 Application 子类,并像这样覆盖它的 initialize 方法:
class MyApplication extends Application<MyConfiguration> {
static void main(String[] args) {
new MyApplication().run(args)
}
@Override
public void initialize(Bootstrap<MyConfiguration> bootstrap) {
// ???
}
@Override
public void run(MyConfiguration configuration, Environment environment)
throws Exception {
// Register resources, health checks, etc.
}
}
在仔细阅读 DropWizard 文档以及 JavaDocs 之后:
-
Configuration- YAML 配置文件的对象表示。使用您自己的配置属性扩展它,它们也会从 YAML 文件中解析出来。 -
Bootstrap- 预启动应用程序环境,包含引导 Dropwizard 命令所需的一切。 -
Environment- Dropwizard 应用程序的环境。
但是这些是相当模糊的类定义,尤其是最后两个。我知道我应该继承 Configuration,并且它代表我应用的 YAML/JSON 配置文件的内存 POJO。
但我无法理解其他构造代表什么(Bootstrap 和 Environment)。我习惯于将环境特定配置注入我的应用程序,因此我倾向于将“环境”和“配置”的概念视为同一概念。
此外,DropWizard 似乎将 Bootstrap 实例与 Configuration impl 实例紧密结合在一起,但我找不到可证明的示例来说明这两个类有何不同,以及它们应该如何以不同的方式使用。
所以我问:
- 什么是
Bootstrap,我用它做什么? - 什么是
Environment,我有什么用?
【问题讨论】:
标签: jersey jetty jax-rs dropwizard