Dropwizard是一个操作友好、开发RESTful服务的Java高性能框架,Dropwizard有自己独立的风格,可以辅助以Jetty Jackson Jersey和Metrics提供强大的基于JVM后端服务,Dropwizard将稳定 成熟带给了Java生态系统,大道至简,轻量库包让你聚焦业务,Dropwizard有out-of-the-box支持复杂的配置 应用度量记录、日志等,让你的队伍在短时间内生产出高质量的HTTP+JSON Web服务。

https://www.jdon.com/soa/6-restful.html

配置文件time-service.yml

defaultTimezone: UTC
server:applicationConnectors:- type: httpport: 9000adminConnectors:- type: httpport: 9001

配置文件封装类

package com.zte.sunquan.demo.wizard;import io.dropwizard.Configuration;
import org.hibernate.validator.constraints.NotEmpty;import com.fasterxml.jackson.annotation.JsonProperty;/*** Created by 10184538 on 2018/9/8.*/
public class TimeZoneConfigure extends Configuration {@NotEmpty@JsonPropertyprivate String defaultTimezone;public String getDefaultTimezone() {return defaultTimezone;}}

主体请求处理逻辑

package com.zte.sunquan.demo.wizard;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;import com.google.common.base.Optional;/*** Created by 10184538 on 2018/9/8.*/
@Path("/time")
@Produces(MediaType.APPLICATION_JSON)
public class TimeResource {private final String defaultTimezone;public TimeResource(String defaultTimezone) {this.defaultTimezone = defaultTimezone;}@GETpublic Time getTime(@QueryParam("timezone") Optional timezone) {DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("配置文件中配置:" + defaultTimezone);//配置文件中配置TimeZone timeZone = null;if (timezone.isPresent()) {timeZone = TimeZone.getTimeZone(timezone.get().toString());System.out.println("请求中配置:" + timezone.get().toString());} else {timeZone = TimeZone.getTimeZone(defaultTimezone);}formatter.setTimeZone(timeZone);String formatted = formatter.format(new Date());return new Time(formatted);}
}

启动类

package com.zte.sunquan.demo.wizard;import io.dropwizard.Application;
import io.dropwizard.setup.Bootstrap;/*** Created by 10184538 on 2018/9/8.*/
public class TimeApplication extends Application<TimeZoneConfigure> {public static void main(String[] args) throws Exception {new TimeApplication().run(args);}@Overridepublic void initialize(Bootstrap timezoneConfigurationBootstrap) {}@Overridepublic void run(TimeZoneConfigure timeZoneConfigure, io.dropwizard.setup.Environment environment) throws Exception {final TimeResource resource = new TimeResource(timeZoneConfigure.getDefaultTimezone());environment.jersey().register(resource);}
}

注意dropwizard需要传入配置文件:

http://localhost:9000/time?timezone=MST

输出:

{"time":"2018-09-08 08:47:15"}

http://localhost:9000/time

输出:

{"time":"2018-09-08 01:47:53"}

DropWizard入门实践相关推荐

  1. python入门实践1-11课视频分享

    分享视频,分享知识,收获友谊,收获财富. 我是你们的老朋友,小雨,QQ:798033502 <Python编程入门实践>在先观看地址: 第一讲:我的第一个python实例 http://w ...

  2. Dropwizard入门及开发步骤

    Dropwizard介绍 Dropwizard结构的服务组成 开发步骤 Dropwizard介绍 Dropwizard是一个微服务框架, 是各项技术的一个集成封装.它包含了以下组件: 嵌入式Jetty ...

  3. WEB入门实践-张晨光-专题视频课程

    WEB入门实践-256人已学习 课程介绍         WEB开发入门编程,从各种开发工具的讲解到html标签,css元素讲解,js课程系列. 课程收益     培养web开发技术人才 讲师介绍   ...

  4. 这是一次 docker 入门实践

    前言 其实接触 docker 也有一段时间了,但是一直没有做下总结,现在网上关于 docker 的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧. 实现目标 安装 docker ce ...

  5. Docker快速入门实践-纯干货文章

    Docker快速入门实践-老男孩高级架构师课程内容,如果细看还能发现讲解视频呦!小伙伴们赶紧猛戳吧! 老男孩高级架构师内部学员实践文档分享! Docker快速入门实践-纯干货文章 老男孩教育2016启 ...

  6. mysql窗口函数_MySQL8.0窗口函数入门实践及总结

    前言 MySQL8.0之前,做数据排名统计等相当痛苦,因为没有像Oracle.SQL SERVER .PostgreSQL等其他数据库那样的窗口函数.但随着MySQL8.0中新增了窗口函数之后,针对这 ...

  7. Linux入门实践笔记(七)——云服务器中配置Java项目的JMX连接失败问题解决记录

    Linux入门实践笔记(七)--云服务器中配置Java项目的JMX连接失败问题解决记录 参考文章: (1)Linux入门实践笔记(七)--云服务器中配置Java项目的JMX连接失败问题解决记录 (2) ...

  8. android hook底层代码_Java-Hook技术-入门实践(反射、动态代理)-Hook拦截通知(当前App/Context)...

    老样子,上一篇MonkeyLei:Java-Hook技术-入门实践+反射.动态代理.热修复再看看 我们Hook学习了一下,一个是Java本地Main的实践练习. 一个是Android的监听事件的Hoo ...

  9. aidl使用_Android-Service学习鸭-入门实践-远程服务(bindService方式-AIDL)

    延续上一篇MonkeyLei:Android-Service学习鸭-入门实践-本地服务(bindService方式) ,我接着实践下远程服务的使用(有个疑问先搁这,远程服务到底有哪些使用场景?). 不 ...

最新文章

  1. 值得收藏的经典网页代码(1)
  2. C++中函数参数的默认值
  3. android的log.d不显示结果
  4. 深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452...
  5. mysql 正则regrx_正则表达式
  6. 0 图论及应用(张先迪):课程概述
  7. python结巴分词_“结巴”分词:做最好的Python分词组件
  8. Linux 网卡配置eth1修改为eth0
  9. oracle导出表904错误,月光软件站 - 编程文档 - 数据库 - EXP-00008: ORACLE error 904 encountered的解决方法...
  10. 微软电脑管家登陆微软商店 简单无打扰 支持杀毒和垃圾清理等
  11. 全球与中国椎弓根螺钉固定市场深度研究分析报告
  12. 微型计算机机箱配什么显卡,CPU显卡搭配建议
  13. Java代码混淆工具ProGuard
  14. hibernate 学习笔记-操作数据库
  15. boost::asio::io_service的stop()和reset()和stopped()函数
  16. 学报格式和论文格式一样吗_学报论文发表格式有什么要求
  17. [Flask] [Python3] 第一个flask APP
  18. 详细介绍知识图谱技术
  19. Android屏幕常亮
  20. 剑指offer编程题(JAVA实现)——第38题:二叉树的深度

热门文章

  1. 微信小程序云开发 初学者入门教程一
  2. hive linux时间戳转换,Hive 中 时间戳,字符串转换
  3. excel2013导入SQL
  4. Excel 疑难千寻千解 2013 PDF
  5. 【机器学习】决策树特征选择准则 信息增益、信息增益率、基尼系数的计算及其python实现
  6. 云原生虚拟化:一文读懂网络虚拟化之 tun/tap 网络设备
  7. 网站备案注销(删除),域名备案注销(删除),备案怎么注销删除
  8. 软件工程—软件工程学概述
  9. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第54讲:PHP smarty模板内建函数
  10. http://goodboy5264.blog.163.com/