当前位置: 首页 > 知识库问答 >
问题:

何时使用DropWizard捆绑包?

白萧迟
2023-03-14

我对一个难以捉摸但可能非常强大的DropWizard特性Bundles感到好奇。根据文件:

Dropwizard捆绑包是一组可重用的功能,用于定义应用程序的行为块。

鉴于DropWizard(DW)的文档非常丰富,我感到震惊的是,这实际上是对bundle的唯一解释。我在野外看到了一些这样的例子:

  • 资产组合

但我不明白的是:bundle似乎只是在jar中进行代码打包和分发。那么,为什么我不能编写“原始”(非“捆绑包”兼容)Java类来完成我需要的任务,将它们放在一个JAR中,然后在构建/编译类路径中包含该JAR,然后在我的DW应用程序中使用它们呢?DW捆绑包有什么用途,何时使用?

共有3个答案

施永宁
2023-03-14

DW包与“原始”JAR类似,两者都可以用来提供可重用的功能。然而,区别在于DW捆绑包所享有的额外支持。捆绑包可以进行配置,即它们可以使用DW配置文件进行配置参数

养翔
2023-03-14

假设您在公司的平台团队中工作,并且您的开发人员使用Kafka作为消息总线。

然后,您可以要求开发团队在其DW应用程序中添加以下配置,您可以编写包来解析代理URI,并构建Producer实例。与任何依赖注入框架集成后,您所要做的就是在需要时@injecttheproducer实例。

kafka-broker-uris: <your kafka broker urls>

我们可以使用库做同样的事情,调用一个方法来获取代理uri并返回生产者对象。。

但是,我相信,主要的好处来自于Bundle知道如何解析配置,并在DW生命周期的初始化阶段预先构建必要的对象。此外,如果你想在你的公司中设置一个关于如何定义配置文件的标准,那么最好使用捆绑包。

单于海荣
2023-03-14

捆绑包就像Dropwizard的插件,可以很容易地添加小块功能。例如,如果您使用资产捆绑包,您可以将一个用户界面附加到您的应用编程接口以用于测试目的,它将在同一个端口上运行,并且非常易于使用。另一个例子是Migrations Bundle,它可以轻松地将Liquibase绑定到Dropwizard中,以便您可以使用相同的jar运行数据库迁移。这也很有效,因为你的API可以访问一些在yml文件中定义了连接参数的sql数据库,迁移将能够在同一个数据库上运行。

 类似资料:
  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null

  • 我编写了一个定制的NiFi处理器,它使用一些Hadoop类,处理流文件,并在Avro之间序列化流文件。 处理器的pom.xml文件如下所示: 因为我已经将标记为,所以它不会绑定在生成的NAR文件中。现在,我可以做一个快速修复,完全删除作用域并创建NAR,但NiFi会抱怨next class not found错误。 我想知道:

  • 但程序没有启动。它显示了一个会立即消失的小对话框(看起来是空白的,但它消失得太快了,以至于我没有真正注意到它)。

  • 我目前正在创建一个时间线卡片,方式如下: 这将在时间线中创建一张活卡。我尝试添加另一个相同的标签,以为它会把他们捆绑在一起,最近的将是捆绑封面卡,但它没有做到这一点。 我看了一下文档,我能找到的只是如何使用镜像API来实现它。那么有没有一种方法可以使用GDK创建捆绑卡呢?还是只有通过镜像API才可用?多谢了。

  • 问题内容: 我有一个控制器,需要检索两个单独的REST资源,该资源将填充两个下拉列表。我想避免在返回两个$ http.get()调用之前填充其中任何一个,以便下拉列表似乎是同时填充的,而不是一个接一个地滴入。 是否可以捆绑$ http.get()调用并为两个返回的数组优雅地设置$ scope变量,而不必为这两种情况编写状态逻辑,例如a在b之前返回,b在a之前返回? 问题答案: 调用Angular

  • 在本章中,您将学习如何在Aurelia框架中使用捆绑。 第1步 - 安装先决条件 您可以通过在command prompt运行以下命令来安装aurelia-bundler 。 C:\Users\username\Desktop\aureliaApp>npm install aurelia-bundler --save-dev 如果您没有安装gulp,可以通过运行此代码来安装它。 C:\Users