8年软件开发生涯中我俨然一位Java开发者了。大多数我写的程序,都用Spring框架或者Java EE.最近我在学Python Web开发,其中印象很深的一个是Flask框架。Flask框架是个微框架,使得写REST后端很简单。我今天的30天挑战,决定找一款Java框架替代PythonFlask。一番搜索后,我发现Dropwizard框架可以达到如Flask同样的功效。这篇博客,我们来学习怎样用Dropwizard构建RESTful Java MongoDB程序。

[译] 第十三天:Dropwizard - 很棒的Java REST 服务栈

什么是Dropwizard?

Dropwizard是一款开源Java框架,用于ops友好开发,高性能RESTful后端开发。它由Yammer开发并提供基于JVM后端的支持。 

Dropwizar延续最优Java库,嵌入到程序包,包括以下组件:

  1. 嵌入Jetty: 每个程序都打包成jar而不是war,启用自带的Jetty容器,没有WAR文件也没有外部servlet容器。
  2. JAX-RS:      Jersey(JAX-RS的参考实现)用来写RESTful Web服务,这样就没白费你已懂的JAX-RS知识。
  3. JSON: REST服务使用JSON, Jackson库用来做所有JSON处理。
  4. Logging: 用Logback和SLF4J完成。
  5. Hibernate      Validator: Dropwizard用Hbernate Vlidator API来验证声明。
  6. Metrics:      Dropwizard支持用Metrics库进行检测,提供观察代码对生产做了什么的绝佳视觉。 

为什么选择Dropwizard?

我学习Dropwizard的几点原因:

  1. 快速的项目引导:要是你用过Spring或者Java EE, 就会了解开发者要通过项目引导的痛苦,用Dropwizard,只需要添加一个依赖到pom.xml文件就好了。
  2. 项目Metrics:      Dropwizard支持项目metrics, 它提供很有用的信息如请求/相应时间等,我们只需给出@Timed注解就可获得方法执行时间。
  3. 生产力:每个Dropwizard应用有一个启用Jetty容器的主程序,意味着可以在IDE里直接像主程序一样运行和调试,没有必要再编译或者部署WAR文件。 

Github仓库

今天的demo放在github: day13-dropwizard-mongodb-demo-app

前提准备

  1. 必须会Java基础。
  2. 下载和安装MongoDB数据库
  3. 安装最新Java Development      Kit(JDK), 可以装OpenJDK7或者Oracle JDK 7. OpenShift支持OpenJDK 6和7, 这篇博客,我们用JDK 7.
  4. 官网下载最新的Eclipse,目前最新版本是Kepler.

          [译] 第十三天:Dropwizard - 很棒的Java REST 服务栈

安装Eclipse很简单,只需解压下载的安装包。在linux或者mac上,打开命令管理器输入以下命令。

$ tar -xzvf eclipse-jee-kepler-R-*.tar.gz

Windows上可以用7-zip或者其他解压工具解压,解压后,在你解压的路径会有一个eclipse的文件夹,可以给可执行文件创建快捷键。

第一步:新建Maven项目

打开Eclipse IDE导航到项目空间,新建项目,到File > New > Maven Project,选择maven-archetype-quichstart,输入Ground IdArtifact Id,最后点Finish.

[译] 第十三天:Dropwizard - 很棒的Java REST 服务栈

第二步:更新pom.xml

现在更新pom.xml, 加入dropwizard-core maven依赖,再更新Maven项目用Java 1.7版本,更新pom.xml后更新Maven项目(右击>Maven>Update Project)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>com.shekhar</groupId>
    <artifactId>blog</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
 
    <name>blog</name>
    <url>http://maven.apache.org</url>
 
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>com.yammer.dropwizard</groupId>
            <artifactId>dropwizard-core</artifactId>
            <version>0.6.2</version>
        </dependency>
 
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
 
 
        </plugins>
    </build>
</project>
View Code

相关文章:

  • 2022-01-22
  • 2022-12-23
  • 2021-12-03
  • 2022-01-12
  • 2022-02-08
  • 2021-10-24
  • 2021-08-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2021-08-05
  • 2021-09-14
  • 2021-10-23
相关资源
相似解决方案