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结构的服务组成
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等。
I am a slow walker, but I never walk backwards.