Dropwizard 中应用程序和服务之间的区别

2022-09-03 06:52:02

我是Dropwizard的新手。在最新的文档中,它将“服务”称为任何应用程序的主要入口点。但在示例代码中,它实际上使用了“应用程序”。我假设“应用程序”是“服务”的新名称,因为我在新的源代码中找不到“服务”。

我还注意到命名空间已从“com.yammer”更改为“com.codehaus”再到“io.dropwizard”。我假设它反映了项目本身的演变。只是出于好奇,任何人都可以添加一些背景来说明这是如何发生的吗?


答案 1

您引用的两个命名更改实际上都是对即将推出的 0.7 版的更改。文档还不是最新的(根据邮件列表,这实际上是阻碍0.7版本发布的主要因素)。

当前发行说明可在主分支中找到。

  • 升级到 Java 7。
  • 已移至组 ID 和命名空间。io.dropwizard
  • 提取出许多可重用库:、dropwizard-configurationdropwizard-jacksondropwizard-jerseydropwizard-jettydropwizard-lifecycledropwizard-loggingdropwizard-servletsdropwizard-utildropwizard-validation
  • 提取出的各种元素以分离类:,等。EnvironmentJerseyEnvironmentLifecycleEnvironment
  • 已提取和 。 只是现在提供基础设施。dropwizard-views-freemarkerdropwizard-views-mustachedropwizard-views
  • 重命名为 。ServiceApplication
  • 已添加 ,它提供对多部分 MIME 实体的支持。dropwizard-forms
  • 添加。dropwizard-spdy
  • 添加了 ,允许为应用程序和请求日志使用任意日志记录附加器。AppenderFactory
  • 添加了 ,允许任意 Jetty 连接器。ConnectorFactory
  • 添加了 ,具有多连接器和单连接器实现。ServerFactory
  • 为指标报告器添加了 ,并带有 Graphite 和 Ganglia 实现。ReporterFactory
  • 添加以允许从文件系统以外的源加载配置文件。ConfigurationSourceProvider
  • 添加了 setuid 支持。在 中将用户/组配置为作为和软/硬打开文件限制运行。要绑定到特权端口(例如 80),请启用并设置 和 ,然后以 root 用户身份启动应用程序。ServerFactorystartAsRootusergroup
  • 添加了托管执行器的生成器。
  • 添加了一个默认命令,用于加载和验证服务配置。check
  • 添加了对 Jetty HTTP 客户端的支持。dropwizard-client
  • 添加了杰克逊加力燃烧器支持。
  • 添加了对编码请求和响应的支持。deflate
  • 添加了对 HTTP 会话的支持。将带注释的参数添加到资源方法:以注入会话上下文。@Session HttpSession session
  • 添加了对跨请求传播的“闪存”消息的支持。将带注释的参数添加到资源方法中:以注入任何现有的 flash 消息。@Session Flash message
  • 添加了对使用模糊匹配规则(即空格剥离、/等效性、不区分大小写等)反序列化 Java 的支持。enums-_
  • 添加了用于自定义休眠配置。HibernateBundle#configure(Configuration)
  • 添加了对使用 JDBI 时的 Joda Time 参数和结果的支持。DateTime
  • 添加了配置选项,以在记录到 syslog 时包括异常堆栈跟踪。默认情况下,堆栈跟踪现在处于排除状态。
  • 按照惯例,将应用程序名称和 PID(如果可检测)添加到 syslog 消息的开头。
  • 在命令中添加了命令行选项以显式提供迁移文件。--migrations-filemigrate
  • 验证错误现在作为响应返回。application/json
  • 简化 ;现在标准化为Jetty 9 NCSA格式。AsyncRequestLog
  • 重命名为 和 。DatabaseConfigurationDataSourceFactoryConfigurationStrategyDatabaseConfiguration
  • 将日志记录更改为异步。现在,消息在传递到配置的追加器之前,会在内存中进行缓冲和批处理。
  • 更改了对运行时配置错误的处理。将不再显示异常堆栈跟踪,并将提供更有用的问题描述,包括在适当时提供建议。
  • 更改了错误处理,使其更依赖于泽西岛异常映射。
  • 更改为使用而不是 .dropwizard-dbtomcat-jdbctomcat-dbcp
  • 更改了记录嵌套异常时的默认格式,以便首先显示根本原因。
  • 已替换为 ,一个 JUnit 。ResourceTestResourceTestRuleTestRule
  • 放弃了对 Scala 的支持。
  • 下降。ManagedSessionFactory
  • 掉落 ;请改用。ObjectMapperFactoryObjectMapper
  • 掉落 ;请改用。Validatorjavax.validation.Validator
  • 修复了 中的关机错误。dropwizard-migrations
  • 修复了在记录嵌套异常时不带前缀的“由”行的格式设置。
  • 修复了并非所有可用的 Jersey 终结点在启动时都已记录的问题。
  • 升级到 argparse4j 0.4.1。
  • 升级到番石榴15。
  • 升级到休眠验证器 5.0.1。
  • 升级到杰克逊 2.2.3。
  • 升级到 JDBI 2.50。
  • 升级到码头 9.0.5。
  • 升级到 Liquibase 3.0.4。
  • 升级到日志备份 1.0.13。
  • 已升级到指标 3.0.1。
  • 升级到胡子 0.8.13.
  • 升级到 SLF4J 1.7.5。

答案 2

推荐