我很好奇一个难以捉摸的 - 但可能非常强大 - DropWizard功能叫做Bundles.根据文件:
Dropwizard包是一组可重用的功能,用于定义应用程序行为的块.
鉴于DropWizard(DW)的记录非常好,我很震惊,这确实是捆绑包的唯一解释.我在野外看到了一些例子:
但我不明白的是:bundle似乎只是代码打包并在JAR中分发.那么为什么我不能只编写"原始"(非"bundle"兼容)Java类来做我需要的东西,在JAR中将它们打包,然后在我的构建/编译类路径中包含该JAR,然后在广告中使用它们我的DW应用程序?DW捆绑的用途是什么,什么时候应该使用它们?
捆绑包就像Dropwizard的插件一样,可以很容易地添加一些小功能.例如,如果您使用资产包,则可以将UI附加到API以进行测试,它将在同一端口上运行并且非常易于使用.另一个例子是Migrations Bundle,它可以轻松地将Liquibase绑定到Dropwizard,这样您就可以使用相同的jar运行数据库迁移.这也很有效,因为您的API可能正在访问某个sql数据库,该数据库具有在yml文件中定义的连接参数,迁移将能够在同一个数据库上运行.