1.前言
本文主要简述了Spring Framework、Spring Boot、Spring Cloud以及Spring Cloud Alibaba的作用及特点
,内容主要来自于spring官方文档,英文好的朋友推荐直接阅读官方文档。
2. Spring Framework
概览
Spring Framework为基于现代企业应用提供了一个全面的编程和配置的模型 - 在任何类型部署平台上
Spring Framework的一个关键元素就是对应用层面提供基础设施的支持:Spring专注于企业应用的管道(基础设施),以至于团队能专注于应用层面的业务逻辑,而不需要关心特定的部署环境。
特点
- 技术核心:依赖注入(DI)、事件、资源、i18n、验证、数据绑定、类型转换、SpEL、面向切面编程(AOP)
- 测试:模拟对象、TestContext框架、Spring MVC Test、WebTestClient
- 数据访问:事务、DAO支持、JDBC、ORM、Marshalling XML
- Spring MVC和Spring WebFlux web框架
- 集成:远程处理、JMS、JCA、JMX、电子邮件、任务、调度、缓存
- 语言:Kotlin、Groovy、动态语言
3. Spring Boot
搭建项目的脚手架、黏合剂,整合周边生态 ,Spring Boot文档
概览
Spring Boot让构建独立的生产级别的Spring应用变得简单,开箱即用
我们对Spring平台和第三方库采取了一个固定的方式,以便你能上手没有什么烦恼。大多数Spring Boot应用只需要很少的Spring配置。
特点
- 创建独立的Spring应用
- 直接嵌入了Tomcat、Jetty和Undertow等Web容器(不需要部署war文件)
- 提供固定化的启动器配置,从而简化你的构建配置
- 尽可能地自动配置Spring和第三方依赖库
- 提供运维特征,例如指标、健康检查、外部化的配置
- 完全没有代码生成,也不需要任何XML配置
4. Spring Cloud
Spring Clound的出现真正简化了分布式架构的开发。 Spring Cloud 文档
概览
Spring Cloud 为开发者提供了快速地去构建分布式系统中一些通用模式的工具(例如:配置管理、服务发现、熔断、路由、微代理、控制总线、一次性token、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致了锅炉板模式,使用Spring Cloud开发人员能够快速地实现这些模式的服务和应用程序。它们将在任何环境下运行良好,包括开发人员自己的笔记电脑上、裸机数据中心和Cloud Foundry等托管平台。
特点
Spring Cloud专注于为典型用例和可扩展性机制提供良好的开箱即用体验以覆盖其他用例。
- 分布式/版本化配置
- 服务注册与发现
- 路由
- 服务相互调用
- 负载均衡
- 熔断
- 领导人选举和集群状态
- 分布式消息通讯
5. Spring Cloud Alibaba
概览
Spring Cloud Alibaba为分布式应用开发提供一站式解决方案,它包含分布式应用程序开发所需的所有组件,使你可以轻松地使用Spring Cloud开发应用程序。
使用Spring Cloud Alibaba,你只需要增加一些注解和少量的配置,即可将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并可使用阿里巴巴的中间件构建分布式系统
特点
Spring Cloud
- 限流和服务降级:使用阿里巴巴哨兵进行流量监控、熔断和系统自适应保护
- 服务注册和发现:实例可以注册到Allibaba Nacos,客户端可以使用Spring-managed beans来发现实例。通过Spring Cloud Netflix支持Ribbon,实现客户端负载均衡
- 分布式配置:使用Alibaba Nacos作为数据存储
- 事件驱动:使用Spring Cloud Stream RobcketMQ Binder来构建高扩展的事件驱动微服务连接
- 消息总线:使用Spring Cloud Bus RocketMQ链接分布式系统的节点
- 分布式事务:使用Seata支持高性能、易用的分布式事务解决方案
- Dubbo RPC:通过Apache Dubbo RPC扩展Spring Cloud服务调用服务的通信协议
Spring Boot
致力于简化阿里云环境下的Spring Boot应用开发。
所有的Spring Boot启动器都维护在阿里云Spring Boot项目中
- Alibaba Cloud OSS:阿里云对象存储服务(Object Storage Service,简称 OSS)
- Alibaba Cloud SMS:覆盖全球的短信服务。
- Alibaba Cloud SchedulerX:阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
- Alibaba Cloud Redis:高可靠双机热备架构及可无缝扩展的集群架构
- Alibaba Cloud RDS MySQL:阿里云关系型数据库RDS(Relational Database Service)
- Alibaba Cloud Function Compute: 函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务
6. 总结
序号 | 名称 | 作用 |
---|---|---|
1 | Spring Framework | 提供基础设施支持,让开发更专注于业务逻辑 |
2 | Spring Boot | 专注于快速构建单个单体微服务 |
3 | Spring Cloud | 关注全局的微服务治理框架 |
4 | Spring Cloud Alibaba | 分布式应用的一站式解决方案 |
7. 附录
后续会持续更新Spring相关的文章
Spring控制反转(IOC)及依赖注入(DI)
Spring依赖注入(DI)之注解形式