⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 jianshu.com/p/37e7a10f5c32 「SlowGO」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

本文我们简单聊聊当下主流的 3 个 Java 微服务框架,看看各自的特点。

1. Spring and Spring Boot

image

Spring Boot 在 Java 微服务领域绝对是一哥,毫无争议,据说已经占据 57% 的市场份额。

Spring Boot 这么牛是有道理的,它太成熟了,功能特性极其丰富,不管你的需求多复杂,都能满足你。

还内置了各种通用的功能,例如安全认证等等,开箱即用,非常方便。

SpringBoot 配置优先的理念大大简化了开发,通过自动配置可以非常简单的集成各种技术。

SpringBoot 集成了嵌入式的 Tomcat,应用打成 jar 包即可以运行,可以方便的运行在容器中。

SpringBoot 是开源的,文档很全,社区也活跃。

从学习、开发,到部署运行,都这么便捷,想不火都难。

官网地址:

https://spring.io

2. Dropwizard

Dropwizard 是一个开源的 RESTful 快速开发框架,对微服务的开发也极其友好,而且性能很强。

Dropwizard 也是打成 Jar 运行,SpringBoot 默认集成的是 Tomcat,Dropwizard 集成的是 Jetty。

Dropwizard 有一个特点,它集成了各个领域的龙头技术,而且不可替换,不像 SpringBoot 集成的那么多,供大家选择。

例如:

  • WebServer 选 Jetty
  • REST 选 Jersey
  • 监控选 Metrics
  • 日志用 Logback、slf4j

这样的话就不需要我们自己选择了,简单了很多。

而 SpringBoot 的思路是全面包容,你想用啥都行,我都支持,例如 WebServer 你可以用 Tomcat,也可以选 Jetty、Undertow。

Dropwizard 自身是不支持依赖注入的,但集成了这个领域的强者 Guice 和 Dagger。

官网地址:

https://www.dropwizard.io

3. Micronaut

Micronaut 有3个突出的特点:

  • 启动极快
  • 内存占用少
  • 原生支持 ServerLess

IOC 是 Spring 引以为傲的特性,是基于大量的反射实现的,但这会影响启动速度,Micronaut 没有这么做,较少的使用了反射和代理,所以启动飞快,而且 Micronaut 是基于 GraalVM 的,增强了其速度和内存方面的优势。

Micronaut 使用的是 Netty,所以对响应式编程的支持也是一流的。

官网地址:

https://micronaut.io/

SpringBoot 我们都很熟悉了,建议也了解一下 Dropwizard 和 Micronaut,有利于扩展我们的思路。

文章目录
  1. 1. 1. Spring and Spring Boot
  2. 2. 2. Dropwizard
  3. 3. 3. Micronaut