非常棒的Java REST服务器栈:Dropwizard
jopen
10年前
Dropwizard 是一个开源的Java框架,用于开发OPS友好、高性能的基于REST的后端。它是由Yammer开发的,来驱动基于JVM的后端。
Dropwizard提供同类最佳的Java库到一个嵌入式应用程序包。它由以下部分组成:
- 嵌入式Jetty:每一个应用程序被打包成一个jar(而不是war)文件,并开始自己的嵌入式Jetty容器。没有任何war文件和外部servlet容器。
- JAX-RS:Jersey(JAX-RS的参考实现)是用来写基于REST的Web服务的。
- JSON:REST服务用的是JSON,Jackson库用来做所有的JSON处理。
- 日志:使用Logback和SLF4J完成。
- Hibernate验证:Dropwizard使用Hibernate验证API进行声明性验证。
- 指标:Dropwizard支持监控使用标准库,它在监控代码方面有无与伦比的洞察力。
除了上面提到的这几个,Dropwizard还使用了一些其他的库,你可以在这里找到完整的列表。
为什么是Dropwizard?
我决定学Dropwizard的原因有以下几点:
- 快速的项目引导:如果你已经在使用Spring和Java EE,你就会明白开发人员在引导项目时的痛苦。使用Dropwizard,你只需要在你的
pom.xml
文件中添加一个依赖就完成了。 - 应用指标:Dropwizard自带应用程序指标的支持。它提供了类似
请求/响应时间
这种非常有用的信息,只要把@ 定时注解来获取方法的执行时间。 - 生产力:每个Dropwizard应用程序有一个启动Jetty容器的主程序。这意味着,完全可以把应用程序作为一个主程序在IDE中运行和调试。所以就没有重新编译或部署war文件。