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等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM