主要观点:介绍用 Dropwizard 构建第一个 Java 微服务,强调其便捷性及包含的诸多功能。
关键信息:
- Dropwizard 已历经测试,整合众多库,如 Jetty、Jersey、Jackson 等。
- 所需 Java 11+ 及 Maven,可通过 Maven Archetype 或手动创建 Maven 项目搭建项目,添加 dropwizard-core 依赖。
- 用 YAML 进行配置,定义配置类,如 HelloWorldConfiguration。
- 应用类扩展 Application<T>,包含 main、initialize、run 等方法,可注册资源等。
- 有示例资源类,如 HelloWorldResource,处理请求并返回相应结果。
- 可进行构建、运行、测试,包括 mvn clean package 生成 JAR,运行服务并通过 cURL 等测试,还可进行自动化测试。
- 能进行健康检查、数据库连接、自定义健康检查、度量和监控、使用 Bundles 和扩展、配置安全和 HTTPS 等操作。
重要细节: - 构建 Fat JAR 时,Maven Shade Plugin 可将依赖合并到 target/your-app.jar。
- 配置文件为 config.yml,可指定端口等。
- 数据库连接可通过 dropwizard-jdbi3 模块,在 YAML 中设置数据源并在相应方法中初始化。
- 自定义健康检查可通过继承 HealthCheck 类实现,并在 run 方法中注册。
- 度量和监控可使用 MetricRegistry 跟踪事件等,通过 admin /metrics 端点获取 JSON 指标。
- Bundles 可用于添加模板、认证等功能,避免代码中出现大量样板代码。
- 安全方面可配置 Basic Authentication 和 OAuth,通过 YAML 限制应用连接器实现 HTTPS 连接。
- 生产就绪后可进行数据持久化、设置自定义检查、进行性能跟踪、启用安全机制等操作,可使用偏好的云进行部署,Dockerize 并在 Kubernetes 上运行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。