Dropwizard is a Java framework that pulls together stable and mature libraries from the Java ecosystem to create a simple and lightweight package for developing operations-friendly, high-performance RESTful web services. It uses Jetty for HTTP, Jersey for REST, Jackson for JSON, Metrics for metrics, and other libraries like Logback, Hibernate Validator, Apache HttpClient, JDBI, Liquibase, Freemarker and Joda Time. Applications are built as a fat JAR and run with a simple command.
3. история вопроса
● распространенное мнение: java ==
кровавый энтерпрайз
● некоторым хочется легкости (не в
ущерб преимуществ java)
● dropwizard -- легковесный
фреймворк для веб (It's an answer to the
complexity of Java Web and Application Containers,
which tend to be overkill for 90% of your use-cases.)
4. об авторе
● Coda Hale (codahale.com)
● «I’m a software engineer in Berkeley,
CA.»
● Principal Software Developer
(Microsoft), Infrastructure Architect
(Yammer)
5. определение
● Dropwizard is a Java framework for
developing ops-friendly, highperformance, RESTful web services.
● Основная идея: pulls together stable,
mature libraries from the Java
ecosystem into a simple, light-weight
package.
● Название: что такое dropwizard?
7. компоненты dropwizard'а
●
●
●
●
●
●
●
●
●
●
●
●
Jetty for HTTP
Jersey for REST
Jackson for JSON
Metrics for metrics
Guava (highly optimized immutable data structures,
speed up development)
Logback and slf4j for performant logging
Hibernate Validator (JSR-303)
Apache HttpClient and Jersey client (interaction with
other web services)
JDBI or Hibernate
Liquibase
Freemarker or Mustache (simple template system)
Joda Time (handling dates and times)
8. Jetty
●
●
●
●
●
●
●
●
Incredibly tuned embedded HTTP server.
Running your service as a simple process.
No PermGen issues
No application server configuration and
maintenance
No arcane deployment tools
No ClassLoader troubles
No hidden application logs
No trying to tune a single garbage collector
to work with multiple application workloads
9. Jersey
● JAX-RS (JSR 311: Java API for RESTful
Web Services)
● full-featured RESTful web framework
● nothing beats in terms of features and
performance
● allows to write clean, testable classes which
gracefully map HTTP requests to simple
Java objects
● supports streaming output, matrix URI
parameters, conditional GET requests
● and much, much more
11. Metrics
● powerful toolkit of ways to measure the
behavior of critical components in your
production environment
● with modules for common libraries like Jetty,
Logback, Log4j, Apache HttpClient,
Ehcache, JDBI, Jersey and reporting
backends like Ganglia and Graphite,
Metrics provides you with full-stack visibility.