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