java - Dropwizard 中应用和服务的区别

标签 java dropwizard

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

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

最佳答案

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

当前的发行说明可以在 master branch 中找到。 .

  • 升级到 Java 7。
  • 移至 io.dropwizard组 ID 和命名空间。
  • 提取出多个可复用的库:dropwizard-configuration ,dropwizard-jackson , dropwizard-jersey , dropwizard-jetty , dropwizard-lifecycle ,dropwizard-logging , dropwizard-servlets , dropwizard-util , dropwizard-validation .
  • 提取出Environment的各种元素分隔类:JerseyEnvironment ,LifecycleEnvironment
  • 提取出来dropwizard-views-freemarkerdropwizard-views-mustache .dropwizard-views现在只提供基础设施。
  • 更名 ServiceApplication .
  • 已添加 dropwizard-forms ,它提供对多部分 MIME 实体的支持。
  • 已添加 dropwizard-spdy .
  • 已添加 AppenderFactory ,允许应用程序和请求的任意日志附加程序
    日志。
  • 已添加 ConnectorFactory ,允许任意 Jetty 连接器。
  • 已添加 ServerFactory ,具有多连接器和单连接器实现。
  • 已添加 ReporterFactory ,对于指标报告者,使用 Graphite 和 Ganglia 实现。
  • 已添加 ConfigurationSourceProvider允许从其他来源加载配置文件
    文件系统。
  • 添加了 setuid 支持。将用户/组配置为运行方式和软/硬打开文件限制ServerFactory .要绑定(bind)到特权端口(例如 80),请启用 startAsRoot并设置 usergroup ,然后以 root 用户身份启动您的应用程序。
  • 为托管执行程序添加了构建器。
  • 添加了默认 check命令,用于加载和验证服务配置。
  • dropwizard-client 添加了对 Jetty HTTP 客户端的支持.
  • 添加了 Jackson Afterburner 支持。
  • 添加了对 deflate 的支持- 编码的请求和响应。
  • 添加了对 HTTP session 的支持。将带注释的参数添加到您的资源方法中:@Session HttpSession session注入(inject) session 上下文。
  • 添加了对跨请求传播的“flash”消息的支持。添加带注释的参数
    到您的资源方法:@Session Flash message注入(inject)任何现有的 Flash 消息。
  • 添加了对 Java 反序列化的支持 enums带有模糊匹配规则(即空格
    剥离, -/_等价、不区分大小写等)。
  • 已添加 HibernateBundle#configure(Configuration)用于自定义 Hibernate 配置。
  • 添加了对 Joda Time 的支持 DateTime使用 JDBI 时的参数和结果。
  • 添加了配置选项以在记录到系统日志时包含异常堆栈跟踪。堆栈跟踪
    现在默认排除。
  • 将应用程序名称和 PID(如果可检测)添加到系统日志消息的开头,就像
    习俗。
  • 已添加 --migrations-file migrate 的命令行选项命令提供迁移
    文件明确。
  • 验证错误现在返回为 application/json回应。
  • 简体 AsyncRequestLog ;现在标准化为 Jetty 9 NCSA 格式。
  • 更名 DatabaseConfigurationDataSourceFactory , 和 ConfigurationStrategyDatabaseConfiguration .
  • 将日志记录更改为异步。消息现在在内存中缓冲和批处理
    交付给配置的 appender(s)。
  • 更改了对运行时配置错误的处理。将不再显示异常堆栈跟踪
    并将提供对问题的更有用的描述,包括适当的建议。
  • 更改了错误处理以更加依赖 Jersey 异常映射。
  • 已更改 dropwizard-db使用 tomcat-jdbc而不是 tomcat-dbcp .
  • 更改记录嵌套异常时的默认格式以首先显示根本原因。
  • 已替换 ResourceTestResourceTestRule , 一个 JUnit TestRule .
  • 放弃 Scala 支持。
  • 掉落 ManagedSessionFactory .
  • 掉落 ObjectMapperFactory ;使用 ObjectMapper反而。
  • 掉落 Validator ;使用 javax.validation.Validator反而。
  • 修复了 dropwizard-migrations 中的关闭错误.
  • 修复了记录嵌套异常时没有前缀的“Caused by”行的格式。
  • 修复了启动时未记录所有可用 Jersey 端点的问题。
  • 升级到 argparse4j 0.4.1。
  • 升级到 Guava 15。
  • 升级到 Hibernate Validator 5.0.1。
  • 升级到 jackson 2.2.3。
  • 升级到 JDBI 2.50。
  • 升级到 jetty 9.0.5。
  • 升级到 Liquibase 3.0.4。
  • 升级到 Logback 1.0.13。
  • 升级到指标 3.0.1。
  • 升级到 Mustache 0.8.13。
  • 升级到 SLF4J 1.7.5。
  • 关于java - Dropwizard 中应用和服务的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754557/

    相关文章:

    java - 将数据从 XML 加载到列表

    java - EJB测试策略?

    java - 在 Android 中搜索整数 ArrayList 的最佳方法

    java - 将类作为参数传递给返回该类对象的 ArrayList 的方法

    java - 使用 DropWizard 指标-Jvm 获取 JMX 值

    java - com.sun.jersey.spi.container.ContainerResponse : A message body writer for Java class

    java - 为什么我在 Jersey REST API 上发布 POST 时收到 500 响应?

    java - 在Java中打印梯形

    java - 为什么 dropwizard 无法配置我的记录器?

    java - @Bind 可以使用 JDBI 与枚举和其他任意类型一起使用吗?