Dropwizard入門及開發步驟

Dropwizard介紹

Dropwizard是一個微服務框架, 是各項技術的一個集成封裝。它包含了如下組件:html

  • 嵌入式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
java

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配置文件反序列化讀取對應的參數。git

定義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-Dropwizardgithub

定義該服務返回值的Representation(可選)

定義一個HeatlthCheck(可選)

定義Application類

在application類裏,能夠綁定靜態資源,註冊Resource,註冊swagger等。數據庫

相關文章
相關標籤/搜索