Dropwizard 编写Hello world应用

Java微服务框架 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大、更复杂的应用程序,而这些应用程序作为微小服务的组合能够更好地得以开发和管理。这些微小的服务可以组合在一起工作,并实现更大、应用更广泛的功能。现在出现了很多的工具来满足使用逐段法而不是一次性地设计和构建应用程序的所有需求。今天,我们来看一下什么是微服务、使用微服务的好处,以及几个代码示例。 阅读详情

Dropwizard 编写Hello world应用

本文介绍如何创建Dropwizard Hello world应用,适合Dropwizard使用入门,对使用Dropwizard的基本流程的理解有一定帮助。


环境准备

在创建Dropwizard应用之前,需要准备好开发环境,Java(JDK 7以上)、Maven和MySQL是必须的。
Java JDK 7下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
Maven 下载地址:
http://maven.apache.org/download.cgi
MySQL下载地址:
http://dev.mysql.com/downloads/mysql/#downloads

Java和Maven需要配置好环境变量。

创建Maven项目

Maven项目可以使用maven的原型命令maven-archetype-quickstart快速创建,创建出的Maven项目为一个基于标准Maven模板的空项目。
具体步骤如下:

  1. 打开命令行,切换到想要创建项目的目录

  2. 在命令行中输入以下命令,创建Maven项目:

$ mvn archetype:generate
-DgroupId=com.dwbook.phonebook
-DartifactId=dwbook-phonebook
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false

(输入时不要换行符,“-”前接空格)
创建成功则会在当前目录下创建一个空的Maven项目在名为dwbook-phonebook文件夹中。

配置POM文件

创建Maven项目成功后,在dwbook-phonebook目录下会自动生成一个pom.xml文件。想要通过Maven项目创建Dropwizard应用,需要在pom文件中配置Dropwizard依赖项。创建Dropwizard所需要的模块都可以由Maven中央存储库提供,我们需要做的只是提供模块的ID配置到pom中的依赖项,Maven会自动下载所需模块并包含到项目中。
具体步骤如下:

  1. 在pom.xml文件中加入Dropwizard依赖项,在<dependencies>标签之间加入以下项:
<dependency>
  <groupId>io.dropwizard</groupId>
  <artifactId>dropwizard-core</artifactId>
  <version>1.0.2</version>
</dependency>

(依赖项可能存在groupId,artifactId,和合适的version问题,可以自行查找所需依赖,推荐网址:http://repository.sonatype.org/index.html)
2. 加入Maven所需相关插件,用来编译和打包整个项目为一个Jar文件,并可以利用Maven直接运行。在<project>标签之间加入以下项:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>1.6</version>
      <configuration>
        <filters>
        <filter>
        <artifact>*:*</artifact>
        <excludes>
          <exclude>META-INF/*.SF</exclude>
          <exclude>META-INF/*.DSA</exclude>
          <exclude>META-INF/*.RSA</exclude>
        </excludes>
       </filter>
       </filters>
     </configuration>
     <executions>
     <execution>
     <phase>package</phase>
     <goals>
       <goal>shade</goal>
     </goals>
     <configuration>
     <transformers>
        section:<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
     <transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
     <mainClass>com.dwbook.phonebook.App</mainClass>
     </transformer>
     </transformers>
     </configuration>
     </execution>
     </executions>
  </plugin>
  </plugins>
</build>

编写Hello World

在Maven项目的dwbook-phonebook\src\main\java\com\dwbook\phonebook目录中已经自动生成了App.java文件,只是目前此java文件还只是一个普通的java应用类。所以我们需要将其改写为一个Dropwizard应用的类。具体步骤如下:

  • 在App.java中导入Dropwizard相关包:
import io.dropwizard.Application;
import io.dropwizard.Configuration;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
  • 让App类继承Application <Configuration>类:
public class App extends Application<AppConfig>
  • 实现Service类的抽象方法initialize() 和 run():
public void initialize(Bootstrap<AppConfig> b) {}

public void run(AppConfig c, Environment e) throws Exception 
{

    System.out.println( "Hello world, by Dropwizard!" );
}
  • 最后添加main()方法来启动Dropwizard服务:
public static void main( String[] args ) throws Exception
{
        new App().run(args);
}

构建、编译运行

  • 命令行在项目根目录dwbook-phonebook下,输入:
$ mvn package

构建项目成功,命令行显示如下:
这里写图片描述

此时,在target文件夹中生成了dwbook-phonebook-1.0-SNAPSHOT.jar文件,即我们要运行的jar文件。

  • 在命令行下输入:
$ java -jar target/dwbook-phonebook-1.0-SNAPSHOT.jar server

来运行Dropwizard应用。命令行中显示:
这里写图片描述
Hello World显示成功。

更多

  • 命令行中可能会出现服务启动错误,并提示address already in
    use,这是因为Dropwizard应用内置的Jetty服务默认使用8080端口监听应用请求,8081端口监听用户请求,如果这两个端口被其他应用占用则会导致报错。
  • 另外,可能会出现错误the ResourceConfig instance does not contain any root resource classes。这是由于我们的Hello world应用还没有创建和配置任何的REST资源。
dropwizardDemo:dropwizard演示 表中的内容 Dropwizard示范项目 建议用Maven构建Dropwizard应用模板。 JDK 支持使用JDK 11。 采用openjdk 11 玛文 最好使用Maven 3.3+。 mvn -v Apache Maven 3.6.3 构建和运行 清洁与建造 mvn清洁包装 跑步 mvn exec:java 或者 java -Dapplication.name = dropwizardDemo -Dapplication.home =。 -Dapplication.environment = dev -jar target / dropwizardDemo-1.0-SNAPSHOT.jar服务器target / classes / config / dev.yml 除错 mvnDebug exec:java 测验 指数 http://本地主机:8080 昂首阔步 ht 立即下载

相关推荐

RESTful Web Services with Dropwizard.pdf

dropwizard框架的入门教程,讲的比较好懂,稍微初级一点,用来写java语言的restful框架还是很方便和高效的。

Dropwizart Hello World

Dropwizart Hello World参考文章:http://www.dropwizard.io/0.9.1/docs/getting-started.html Helloworld demo 地址:https://github.com/tkrwy/Dropwizard- DropWizard结构的Web服务组成 1、Configuration:用于设置该服务的配置,比方说在服务开放在哪个端

adalu1986的专栏 682

dropwizard-demo:Dropwizard 宁静服务的最简单演示

JCConf 2014 Dropwizard Demo 1 简单的Dropwizard restful service 范例,说明如何使用Dropwizard 提供一个JSON 格式的Restful Service,没有使用资料库。 议题简介### Dropwizard 是近期崛起的一个轻量级的微服务(Microservice) 框架,以RESTful 为核心,整合了目前Java 主流的技术框架如Jersey、Hibernate 等,从前端网页、核心服务、资料库存取到资源监控,提供了一个full-stack 却lightweight 的开发架构。本议题将从逐渐受到瞩目的微服务架构(Microservice Architecture) 概念开始,带领大家一探Dropwizard 的究竟。 执行方式### 从专案根目录以command line 执行下列maven 命令: mvn pack

Dropwizard 开发环境搭建

Dropwizard 开发环境搭建

Mointor 999

dropwizard-leader-latch:一个简单的库,用于将leader闩锁集成到Dropwizard服务中

Dropwizard领袖锁 这是一个小型库,将Apache Curator的Leader Latch配方集成到Dropwizard服务中。 当您运行同一个Dropwizard服务的多个实例时,这很有用,但是有些动作只能由其中一个实例执行。 使用此库,每组相关的Dropwizard服务实例将仅具有一个领导者,并且每个实例都可以轻松确定它是否是领导者。

ANSYS Fluent DPM实战:从单点到锥形注入的粒子模拟全流程解析

本文深度解析了ANSYS Fluent中离散相模型(DPM)的粒子注入(Injection)设置全流程。从单点注入到锥形喷雾,详细阐述了不同注入类型的物理本质、参数逻辑与适用场景,并提供了粒径分布、湍流扩散等高级参数设置技巧与实战避坑指南,帮助工程师精准模拟喷雾、粉尘等粒子运动行为。

weixin_29276847的博客 656

Dropwizard官方教程(一) 入门

转载:https://www.jianshu.com/p/3bb308c9bbcb 入门 本文将指导您完成一个简单的Dropwizard的Hello World项目。在此过程中,我们将解释各种底层库及其作用,以及Dropwizard中的重要概念,并建议一些组织技术来帮助您的项目能持续健康地增长。 概览 Dropwizard跨越了作为lib库和框架之间的界限。其目标是为生产就绪的Web应用程...

Flyer的后花园 3432

【扫地机器人】详细介绍扫地机器人软硬件测试和场景化测试

本文提出2025版扫地机器人全生命周期测试方案,涵盖实验室仿真、硬件台架、客户实景等全流程验证。测试以"清洁率≥95%、覆盖率≥98%、MTBF≥1000h"为核心指标,采用数字孪生与120套真实场景结合的双V模型。重点包括:传感器精度(LDS误差<±10mm)、清洁系统性能(10g粉尘吸入率≥99%)、动力续航(800次循环容量保持≥80%)等硬件测试;以及SLAM重定位(误差<5cm)、AI识别(mAP>92%)等软件验证。方案特别针对宠物家庭(毛发缠绕率≤3%)、

2501_92897788的博客 2286

Dropwizard框架新手学习教程(详细版)

(留坑待更。。。。。) 一.Dropwizard简介: 1. Dropwizard 是一个开源的Java 框架; 2. 用于开发易于运维,高性能的RESTful网络服务; 3. 它由Yammer开发; 4. 它增强了基于JVM 的后端服务,集合了来自Java 生态系统中的稳定和成熟的程序库,组成 了简单,轻量级的程序包,使得用户可以专注于把事情做好; 5. Dropwizard

zwbHUST的博客 2706

项目回顾一:《高速多端口共享缓存模块》

本帖子仅为了回顾一下一年前自己动手完成的第一个数字ic设计项目的历程,为复试做一下准备,完成的这个sramc模块花了整整四个月的时间,从0到12个模块的代码产出以及模块的验证,虽然没有拿奖,也没有进入复赛,设计过程中使用的技术手段和算法也不太成熟,但这这是一个值得记录的过程!

weixin_60261760的博客 1255

双端之Nginx+Php结合PostgreSQL搭建Wordpress

制作的 PG4WP 分支版本,它与所有版本的 WordPress 兼容,解决了原版的一些问题。参数,确保 PostgreSQL 正在监听默认端口(通常是 5432),或者你自定义的端口。:PG4WP 插件存在缺陷和不完整的功能,可能与最新版本的 WordPress 不兼容。的插件,它允许 WordPress 使用 PostgreSQL 数据库。,如果看到 Nginx 的默认欢迎页面,说明 Nginx 已正确安装。,如果看到 Nginx 的默认欢迎页面,说明 Nginx 已正确安装。

宇宙第一小趴菜的博客 1892

Dropwizard 入门指南:从零构建生产级 Hello World REST 服务

本文是基于 Dropwizard 官方 [Getting Started 文档](https://link.gitcode.com/i/f2f9e6d38a5ac2ad9c9b66c449aa4568) 整理的技术实战指南。你将跟随文中步骤,用 Maven 从零搭建一个完整的 Hello World REST 服务:从配置类、应用类、资源类到健康检查,最终打包成可独立运行的 fat JAR 并启动

gitblog_00444的博客 400

图像标注神器:完全开源免费的多功能标注工具Labelme详解

Labelme是MIT开发的免费开源图像标注工具,支持多边形、矩形等多种标注类型,适用于目标检测、分割等计算机视觉任务。提供Windows可执行文件和Python安装两种方式,可输出JSON格式并转换为COCO等标准数据集。具有跨平台、功能全面、社区活跃等优势,能显著提升标注效率,是AI视觉项目的重要数据准备工具。

数字人生 529

使用 Jib 容器化 Dropwizard 应用:基于 dropwizard-jib-example 的完整实战指南

本指南以 Jib 仓库内的 [Dropwizard 示例工程](https://link.gitcode.com/i/7ff32348ba382d657fbbe3b564d986d6) 为主线,完整讲解如何用 `jib-maven-plugin` 把一个标准的 [Dropwizard](https://dropwizard.io) 服务容器化:从 Maven 构建、Docker 运行、健康检查到基

gitblog_00063的博客 501

C和C++Everything教程的简介

C和C++Everything教程的简介 C和C++Everything教程,该专栏目前已有8000博文,订阅该专栏相当于同时订阅以下所有收费专栏

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4392

YOLO26涨点改进 | 检测头Head创新改进篇 | 利用DynamicConv高效动态卷积改进YOLO26检测头,DyHead通过增强检测头操作,轻量化改进、提高模型目标检测的精度

YOLO26作为新一代轻量化目标检测模型的代表,凭借精简的Backbone架构、高效的特征融合 Neck 设计,在实时检测场景(如嵌入式设备、边缘计算)中展现出优异的性能,成为工业落地与科研入门的优选模型。但在实际应用中,YOLO26原生检测头仍存在核心瓶颈:采用固定参数卷积核,无法根据输入特征的目标尺度、纹理差异动态调整卷积权重,导致多尺度目标适配不足、复杂背景下特征利用率低,且传统改进方案往往难以平衡“精度提升”与“轻量化”,要么精度提升有限,要么大幅增加参数量、拖累推理速度。

qq_36130719的博客 372

dropwizard学习笔记v1.0

前言: 个人因为工作原因,现在开始学习cloud相关的技术。dropwizard是学习的第一个框架,按着官网教程,试着搭建第一个框架,实现“Hello world”。 一、新建一个maven项目 问题:pom.xml文件报错:maven mvn Execution default-resources of goal org.apache.maven.plugins:maven-r

leiyong_bk的博客 1531

基于STM32L4XX、HAL库的BQ27520YZFR-G4 电量监测计驱动程序设计

(可选) -------- TS (Pin 3) 连接温度传感器。(可选) -------- BAT (Pin 2) 连接电池正极。// 假设I2C1已初始化。// 每5秒更新一次。// 短暂延时确保数据准备好。支持Impedance Track™技术,提供高精度电量测量。适用于便携式设备如智能手机、平板电脑等。// 可添加初始化验证代码。// 初始化BQ27520。// 发送控制子命令。// 配置模拟滤波器。// 配置数字滤波器。// I2C1初始化函数。

zhusl6688的博客 244

Dropwizard 快速上手与源码解读:用胶水代码打造生产级 RESTful Web 服务的 Java 框架

Dropwizard 是一款以“极简胶水代码”著称的 Java 框架,它把 Jetty、Jersey、Jackson、Logback、Hibernate Validator、Metrics 等成熟稳定的 Java 生态库粘合在一起,让开发者专注于业务本身,以最短时间交付具备完整配置体系、应用度量、日志与运维工具的“可运维、高性能”RESTful Web 服务。阅读本文,你将理解 Dropwizar

gitblog_00646的博客 358

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用Dropwizard搭建一个Hello World

在开始之前我们需要准备一些环境,以下为本次所需相关工具: 系统:windows 7 JDK:1.8 开发工具:IntelliJ IDEA 2017.2.5 Maven:idea自带最新版本,采用本地化setting.xml(可以参考阿里巴巴的源配置,这样创建项目时自动下载要快很多倍) 本次编写demo参考依据为Dropwizard官网 下面我们开始进入正题,创建第一个基于Dropwizard的He...

CN華少的博客 671

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Jib 官方示例项目全景指南:从 Hello World 到多模块微服务与框架集成

本指南以仓库 `examples/` 目录下的官方示例集合为线索,系统讲解如何用 Jib 将不同类型的 Java 应用一键构建为容器镜像。你将掌握:最简项目的 Maven/Gradle 配置、多模块项目分别用两套构建系统打包的技巧、以及 Spring Boot、Vert.x、Ktor、Dropwizard、Micronaut 等主流框架与 Jib 的对接方式,并看到把镜像直接部署到 Kuberne

gitblog_01169的博客 645

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Dropwizard Migrations 实战指南:用 Liquibase 优雅管理数据库变更

`dropwizard-migrations` 是 Dropwizard 生态中的数据库重构(refactoring)模块,它把 Liquibase 封装成一组开箱即用的命令行工具,让你在 `java -jar app.jar db ...` 的同一个 CLI 框架下完成迁移、回滚、状态检查、schema 转储与文档生成等全部数据库运维操作。读完本文,你将掌握如何配置 `MigrationsBun

gitblog_00111的博客 438

Dropwizard 示例应用详解:从 example.yml 到 H2 数据库与 Hibernate 集成的完整实战

Dropwizard 官方仓库中的 `dropwizard-example` 模块是一个“可运行的功能大全”示例应用,其 README([dropwizard-example/README.md](https://link.gitcode.com/i/7899702045c3a69c7e1e9a35da4859c2))系统性地介绍了该应用中数据库 API 模块的组成与运行方式。本篇以该 READM

gitblog_00293的博客 249

Dropwizard 0.7.x 升级指南:包名重构、DataSourceFactory 引入与服务器配置改造

本篇基于 Dropwizard 官方升级说明 [upgrade-notes-0_7_x.rst](https://link.gitcode.com/i/010c3600af7383ed87fd2217a414f333) 撰写,完整覆盖从 0.6.x 迁移到 0.7.x 的全部 14 项改动:Maven 坐标与包名重命名、`DataSourceFactory` 数据源配置改造、静态资源与模板 Bun

gitblog_00133的博客 96

Dropwizard 内部机制深度解析:启动序列、CLI 命令体系与 Jetty 生命周期

本文基于 Dropwizard 官方手册《Dropwizard Internals》展开,结合当前仓库的源码实现,逐层拆解一个 Dropwizard 应用从 `main` 方法入口到 Jetty 服务器真正对外提供服务的完整启动链路。你将掌握 `Application`、`Bootstrap`、`Environment` 三个核心对象的分工与流转关系,理解 `server`、`check` 等内置

gitblog_00646的博客 86

Dropwizard 文档本地构建指南:基于 Sphinx 从源码生成静态站点的完整流程

本篇指南围绕 [docs/README.md](https://link.gitcode.com/i/1a2f2b658082de8806153c5da756b63b) 的核心内容展开,系统讲解如何在本地搭建 Python 虚拟环境、安装 Sphinx 文档工具链,并执行 `make html`、`make livehtml` 构建 Dropwizard 官方文档的完整流程;同时结合仓库内的 [M

gitblog_00996的博客 473
下一篇: Bootstrap+AngularJS实现对话框、表单和表格
sz阿骏
博客等级 码龄15年 9粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值