• dropwizard介绍


    重要组成

    1. 嵌入式Jetty – 一个应用程序被打包成一个Jar文件,并开始自已嵌入的Jetty容器。除此之外无任何其它war文件和外部servlet容器 for HTTP
    2. JAX-RS : Jersey, 用来写基于REST的Web服务 for REST
    3. JSON:REST服务数据传递处理全部用JSON,使用Jackson库 for JSON
    4. 日志:使用 Logback 和SLF4 for LOG
    5. 数据库:使用Hibernate,集成ORM框架 for DB
    6. 指标:使用Metrics, Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganlia、Graphite结合,方便的提供图形化接口。 for metrics

    web服务组成

    1. Configuration:用于设置该服务的配置,比方说在服务开放在哪个端口,数据库配置是怎样的等等。
    2. Service:该服务的主入口,定义该服务使用哪个配置文件,开放哪些Resource,该服务需要哪些HealthCheck等等。
    3. Resource:定义一个资源,包括如何获取该资源,对该资源做Get/Post/Delete/PUT时,对应的各种业务逻辑。
    4. Representation:定义了一个服务返回值对象,当服务返回该对象时,会自动的把该对象按属性值生成一个Json格式的字符串返回给服务调用者。
    5. HealthCheck:在DropWizard为每个服务提供的OM框架中用到,通过它可以随时检测当前服务是否可用。

    开发步骤

    1. 创建一个Maven工程
    2. 创建一个配置类和YAML配置文件
    3. 闯将启动类
    4. 创建普通POJO类
    5. 创建Resource类,并注册 environment.jersey().register(new UiframeResource ())
    6. 运行

    dropwizard配置类介绍

    每个Dropwizard应用都有一个对应配置类,用于指定特定的环境参数。这个配置类扩展自 io.dropwizard.Configuration类,应用启动时,系统将从YAML配置文件反序列化读取对应的参数。如下

    1. package com.jsq.hibernate.config;
    2. import com.fasterxml.jackson.annotation.JsonProperty;
    3. import io.dropwizard.Configuration;
    4. import io.dropwizard.db.DataSourceFactory;
    5. import lombok.Getter;
    6. import lombok.Setter;
    7. @Setter
    8. @Getter
    9. public class HelloWorldConfiguration extends Configuration {
    10. private String template;
    11. private String defaultName = "Stranger";
    12. private DataSourceFactory database = new DataSourceFactory();
    13. @JsonProperty("database")
    14. public DataSourceFactory getDataSourceFactory() {
    15. return database;
    16. }
    17. }

    jersey使用文档s:https://eclipse-ee4j.github.io/jersey/

    jersey资源类绑定

    Jersey的标准用法,注册绑定资源类 按类进行注册:environment.jersey().register(new UiframeResource ()); 按资源包进行注册:environment.jersey().packages(API_RESOURCE);

    dropwizard用户指南

    https://dropwizard.github.io/dropwizard/0.8.0/docs/getting-started.html

  • 相关阅读:
    Leetcode—34.在排序数组中查找元素的第一个和最后一个位置【中等】
    【解决问题】413错误 413 Request Entity Too Large 接口返回413 报413nginx
    一文读懂 MySQL 索引
    设计模式之装饰器模式
    PyQt5快速开发与实战 4.9 对话框类控件
    vue - vue基础/vue核心内容(2)
    Java架构进阶资源库:源码+笔记+项目实战,成功斩获阿里年薪60W+
    数学建模 -- 层次分析法(AHP)
    session和cookie和token
    Android如何管理多进程
  • 原文地址:https://blog.csdn.net/jsq916/article/details/126585026