球衣 – DropWizard Bootstrap vs配置vs环境

典型的DropWizard应用程序指定一个Application子类,并覆盖其初始化方法,如下所示:
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 for:

> Configuration – YAML配置文件的对象表示。使用您自己的配置属性扩展它,并且它们也将从YAML文件解析。
> Bootstrap – 预启动应用程序环境,其中包含引导Dropwizard命令所需的所有内容
> Environment – Dropwizard应用程序的环境。

但这些是相当模糊的类定义,特别是最后两个。我明白我应该对配置进行子类化,它代表了我应用程序的YAML / JSON配置文件的内存中POJO。

但我不明白其他构造代表什么(Bootstrap和Environment)。我习惯于将环境特定的配置注入到我的应用程序中,所以我倾向于将“环境”和“配置”的概念看作一个。

此外,似乎DropWizard将Bootstrap实例与配置impl实例紧密耦合,但是我可以找到关于这两个类如何不同的示例示例,以及它们如何被使用彼此不同。

所以我问:

什么是Bootstrap,我该用什么?
>什么是环境,我该用什么?

解决方法

Dropwizard基本上是一个有意见的Web框架,主要用于作为REST API项目。您所要求的课程是什么使Dropwizard应用程序成为关键。开发人员将他们想要使用的所有图书馆结合在框架中,并将它们组合在一起,以便我们可以轻松地解决他们为我们引发的问题。

Environment是Dropwizard Environment容器,而不是您的应用程序的个人环境(即本地与生产)。它具有Dropwizard框架的核心属性,如平纹网络容器。

Bootstrap基本上是连接环境中使用的所有内容的类,包括您的配置和应用程序。

如果您查看源文件,您将很好地了解这些类是如何工作的。

更新:
根据下面的问题,环境不应该用于确定数据库连接类型和凭据;这就是你的配置.yml文件。您将要在该文件中放置任何环境特定变量,然后使用特定的.yml文件运行应用程序。我个人有一个application-local.yml,application-staging.yml和application-prod.yml,并根据环境运行我的应用程序与适当的.yml。

Dropwizard对具有特定的.yml属性的数据源进行一些自动配置:请参见here

相关文章

BootStrapValidator可以用于完成基于BootStrap搭建的前端UI中的输入验证,由于本插件完全基于BootStrap...
顶求网首页是一个web2.0博客类的网站首页,在该网站中用户可以发表博客,也可以推荐图书给其他用户。所...
一直想改版网站首页的图书展示部分,以前的展示是使用BootStrap的传统的collapse,网页篇幅占用大,也不...
在视窗足够大的时候是没有任何问题的,但是当拖动改变视窗的大小后会发现布局又变乱了,这个问题困扰了...
BootStrap中的tabs控件以其简单易用而很受广大开发者的欢迎。但是,它的样式比较单一,如何才能在其原有...
BootStrap是基于HTML、CSS和JavaScript的框架,使你只需要写简单的代码就可以很快的搭建一个还不错的前...