首页 技术 正文
技术 2022年11月15日
0 收藏 343 点赞 5,080 浏览 1508 个字

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结构的服务组成

1. Configuration:用于设置该服务的配置,比方说在服务开放在哪个端口,数据库配置是怎样的等等。
2. Application:该服务的主入口,定义该服务使用哪个配置文件,开放哪些Resource,该服务需要哪些HealthCheck等等。
3. Resource:定义一个资源,包括如何获取该资源,对该资源做Get/Post/Delete/Query时,对应的各种业务逻辑。
4. Representation:定义了一个服务返回值对象,当服务返回该对象时,会自动的把该对象按属性值生成一个Json格式的字符串返回给服务调用者。
5. 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等。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,942
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,468
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,281
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,096
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,728
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,765