Dropwizard 沒有任何花哨的項目初始化助手或Maven插件。開始使用Dropwizard 時,遵循與任何普通Java項目相似的模式:使用Maven原型,或者使用當前使用的任何工具將其添加到現有應用程序中。您還可使用JBoss Forge,這是一個與技術無關的Java項目協調和管理工具,它容許您快速建立項目、添加依賴項、添加類等等。在本節中,咱們將使用Maven archetypes。java
選擇要在其中建立新的 Dropwizard 項目的目錄。還要驗證是否安裝了Maven。您能夠從操做系統的命令提示符運行命令,也可使用如下命令中的下列信息填充您喜歡的IDE的對話框或嚮導:git
導航到Maven原型生成器在 hola-dropwizard 中爲咱們提供的目錄,並運行如下命令來構建咱們的項目:github
你將會成功地構建!api
這使用 Dropwizard 原型 java-Simple 來建立咱們的微服務。若是進入hola-dropwizard 目錄,應該會看到如下結構:瀏覽器
請注意,Dropwizard 爲您建立了一個遵循其約定的包結構:maven
api微服務
定義在REST資源中使用的對象的POJO(有些人將這些對象稱爲域對象或DTO)。工具
cliui
這就是 Dropwizard 命令的去處(但願添加到應用程序啓動過程當中的其餘命令)。spa
client
Client helper 類在這裏
db
任何與DB相關的代碼或配置都放在這裏。
health
能夠在運行時在管理接口中公開的特定於微服務的健康檢查在這裏進行。
resources
咱們的REST資源類放在這裏。
咱們還有文件HolaDropwizardApplication.java和Hola-DropwizardConfiguration.java,這是咱們的配置和引導代碼的地方。例如,看一下HolaDropwizardApplication類,在例子3-1中。
這個類包含咱們的公共靜態void main()方法,除了調用咱們的microservice的run()方法以外,它不會作太多的事情。它還有一個getName()方法,該方法在啓動時顯示。initialize() 和 run() 方法是咱們能夠引導應用程序的關鍵位置,咱們將在下一節中展現
生成的配置類HolaDropwizardConfigu如今是空的(示例3-2)。
儘管 Dropwizard 自己沒有任何特殊的Maven插件,但請看一下生成的 pom.xml。咱們看到 Dropwizard 依賴於類路徑,而且咱們將使用 maven-shade-plugin 插件將咱們的JAR打包成一個 jar。這意味着咱們的項目的全部依賴項都將被解壓縮(即,全部依賴項JAR都被解壓縮),並組合成一個單獨的JAR,咱們的構建將建立這個JAR。對於這個JAR,咱們使用maven-jar-plugin來使它可執行。
咱們想添加的一個插件是exec-maven-plugin。有了SpringBoot,咱們就可使用MVN的Spring啓動:Run運行咱們的微服務。咱們但願可以在 Dropwizard 應用程序中執行一樣的操做,所以讓咱們將下面的插件添加到apor.xml的<Build>部分中,如示例3-3所示。
如今,咱們能夠從命令行執行應用程序,以下所示:
咱們能夠在例子 3-4中看到一些東西
若是您看到應用程序啓動,您能夠嘗試在瀏覽器中導航到RESTful端點的默認位置:http://localhost:8080。你可能不會看到太多:
若是您嘗試訪問管理端點http://localhost:8081,您應該會看到一個帶有一些連接的簡單頁面。試着四處點擊,看看已經爲管理您的微服務提供了什麼樣的價值!
如今咱們已經準備好 Dropwizard 微服務模板了,讓咱們添加一個REST端點。咱們但願在/api/hola上公開一個HTTP/REST端點,該端點將返回「HolaDrop嚮導來自X」,其中X是運行服務的IP地址。爲了作這個, 到src/main/java/com/redhat/examples/dropwizard/resources 目錄(記住, 這是 Dropwizard 在哪裏放置REST資源和建立名爲HolaRestResource的新Java類時遵循的約定)。咱們將添加一個名爲hola()的方法,該方法返回一個字符串以及服務運行位置的IP地址,如示例3-5所示。
若是咱們對 SpringBoot 很熟悉的話,這是有緣由的。咱們但願可以在可能的狀況下使用 POJO 代碼建立REST端點和服務,HelloWorld 應用程序是這樣作的最佳位置。爲了將其做爲REST服務公開,咱們將利用好的舊JAX-RS註釋(參見示例3-6):
@Path
告訴JAX-RS這個服務的上下文路徑應該是什麼。
添加一個GET HTTP服務。
如今,在HolaDropwizardApplication類中,讓咱們爲run()方法提供一個實現,以便將新的REST資源添加到微服務(示例3-7)。
如今,咱們應該可以構建和運行 Dropwizard 微服務:
當咱們到達http://localhost:8080/api/hola的端點時,咱們應見如下內容:
下一節更加精彩!!!敬請期待
原文:
做者源碼:https://github.com/redhat-developer/microservices-by-example-source