Java - Spring
Spring
Spring、Spring Framework、Spring Boot、Spring Cloud的区别
Java面向对象---》Spring Framework ---》Spring Boot---》Spring Cloud
- Spring是一个生态体系(技术体系),是集大成者,包含了Spring Framework、Spring Boot、Spring Cloud等(具体性信息:https://spring.io/projects)
- Spring Framework是整个spring生态的基石,为依赖注入、事务管理、WEB应用、数据访问等提供了核心的支持。
- Spring Boot 是基于Spring的一套快速配置脚手架,可以快速构建功能强大的微服务和应用,本身不具备任何功能属性
- Spring Cloud是基于Spring Boot实现的云应用开发工具,将经过验证的微服务模式融入程序,提供配置存储、服务发现、消息传递等功能。
- Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
Spring Framework
整个spring生态的基石,为依赖注入、事务管理、WEB应用、数据访问等提供了核心的支持。
专注于企业级应用程序的“管道”,以便开发团队可以专注于应用程序的业务逻辑。
Spring Boot
简化了基于spring framework应用的初始搭建以及开发过程,通过少量的代码就能创建一个独立的、产品级别的spring应用。
默认集成了常用框架和包,为Spring平台及第三方库提供开箱即用的设置,多数Spring Boot应用只需要很少的Spring配置。
也就是说Spring Boot的核心思想就是约定大于配置,一切自动完成,不需要XML配置。
Spring Boot是大势所趋,是 Java 领域最优秀的微服务架构落地技术,将统一现在的Java企业级应用开发标准。
- 使编码变简单:提供了丰富的解决方案,快速集成各种解决方案提升开发效率。
- 使配置变简单:提供了丰富的 Starters,集成主流开源产品往往只需要简单的配置即可。
- 使部署变简单:本身内嵌启动容器,仅仅需要一个命令即可启动项目,结合 Jenkins 、Docker 自动化运维非常容易实现。
- 使监控变简单:自带监控组件,使用 Actuator 轻松监控服务各项状态。
简而言之,可以将Spring Boot理解为是Spring框架的“脚手架”,可以帮助快速搭建、发布一个Spring应用。
Spring Cloud
微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元。
采用了微服务架构之后,项目的数量会非常多,Spring Cloud做为“大管家”提供各种方案来维护整个微服务架构的生态。
也就是说Spring Cloud是一套分布式服务治理的框架,本身不会提供具体功能性的操作,专注于服务之间的通讯、熔断、监控等。
Spring Cloud利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,是一套简单易懂、易部署和易维护的分布式系统开发工具包。
也就是说,Spring Cloud事实上是一整套基于Spring Boot的微服务解决方案,提供了用于快速构建分布式系统的一些通用模式和工具,简单易懂、易部署和易维护。
目前,规模性的公司都有自己一套完整的微服务解决方案,通常不会整体采用Spring Cloud。
而且,Spring Cloud的每一个微服务组件都面对很多优秀的开源可替代方案,如果采用Spring Cloud,就必须谨慎选择每一个引入项目的组件。
所以,当前的了解应该以Spring Framework和Spring Boot为主,而不是Spring Cloud。
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。