您的位置:首页 > 运维架构

Dropwizard入门及开发步骤

2017-09-07 14:37 295 查看
Dropwizard介绍

Dropwizard结构的服务组成

开发步骤

Dropwizard介绍

Dropwizard是一个微服务框架, 是各项技术的一个集成封装。它包含了以下组件:

嵌入式Jetty,一个应用程序被打包成一个Jar文件,并开始自已嵌入的Jetty容器。除此之外无任何其它war文件和外部servlet容器

JAX-RS : Jersey,用来写基于REST的Web服务

JSON:REST服务数据传递处理全部用JSON,使用Jackson库

日志:使用 Logback 和SLF4

数据库:使用Hibernate,集成ORM框架 for DB

指标:使用Metrics, Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganlia、Graphite结合,方便的提供图形化接口。

Dropwizard源码: https://github.com/Dropwizard/Dropwizard

入门:http://www.dropwizard.io/0.9.2/docs/getting-started.html

Dropwizard结构的服务组成

Configuration:用于设置该服务的配置,比方说在服务开放在哪个端口,数据库配置是怎样的等等。

Application:该服务的主入口,定义该服务使用哪个配置文件,开放哪些Resource,该服务需要哪些HealthCheck等等。

Resource:定义一个资源,包括如何获取该资源,对该资源做Get/Post/Delete/Query时,对应的各种业务逻辑。

Representation:定义了一个服务返回值对象,当服务返回该对象时,会自动的把该对象按属性值生成一个Json格式的字符串返回给服务调用者。

HealthCheck:在Dropwizard为每个服务提供的OM框架中用到,通过它可以随时检测当前服务是否可用。

开发步骤

maven引入Dropwizard

<dependencies>
<dependency>
<groupId>io.Dropwizard</groupId>
<artifactId>Dropwizard-core</artifactId>
<version>${Dropwizard.version}</version>
</dependency>
</dependencies>

定义Configuration 类和 yml文件



每个Dropwizard应用都有一个对应配置类configuration,用于指定特定的环境参数。

这个配置类扩展自 io.Dropwizard.Configuration类,应用启动时,系统将从YAML配置文件反序列化读取对应的参数。

定义resource

Dropwizard中大量使用了注解,api-doc定义通过swagger注解自动生成。

Jersey注解使用说明:

https://jersey.java.net/documentation/latest/jaxrs-resources.html

Swagger注解使用说明:

https://github.com/swagger-api/swagger-samples/tree/master/java/java-Dropwizard

定义该服务返回值的Representation(可选)

定义一个HeatlthCheck(可选)

定义Application类

在application类里,可以绑定静态资源,注册Resource,注册swagger等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: