深入浅出 -- 系统架构之Spring、SpringBoot、SpringCloud的区别

首先我们做技术,尤其是java开发人员,应该对Spring、SpringBoot、SpringCloud 三个家伙一点不陌生。

结合发展史Spring出现的最早,后面为了可以让开发人员偷懒,简化配置,就是约定犹于配置或者说大于,进而出现可SpringBoot,再往后就是要进入SpringCloud时代了。

1、Spring:是一个生态体系(也可以说是技术体系),是集大成者,它包含了Spring Framework、Spring Boot、Spring Cloud等(还包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),是一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案;

2、 其实还有一个SpringMvc:是spring基础之上的一个MVC框架,是基于Servlet 的主要解决WEB开发的问题路径映射和视图渲染等;

3、SpringBoot:使用了默认大于配置的理念,集成了快速开发的spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;

4、SpringCloud:大部分的功能插件都是基于springBoot去实现的,springCloud关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理; springCloud依赖于springBoot开发,而springBoot可以独立开发;

到这里大家也是对这四个家伙有了大致了解,但是,前面有说SpringCloud时代,也是是名声大了去的为更高效的解决大数据,高可用,大并发······等问题的分布式,微服务模式时代!

说到这里我就要谈谈我的个人看法了,首先Spring是核心,然后是SpringBoot,严格意义上来讲这俩是父子关系,是一类,而SpringCloud更像一个由SpringBoot组建起来的一个家庭,用了近两年的SpringCloud慢慢发现其实他的噱头成分越来越大,在当下互联网大环境下,其实SpringCloud只能说是为分布式微服务提供了一套参考方案,可以说不是唯一特有的不可取而代之的

SpringCloud的相关组件:

Spring Cloud Config:它是一个配置中心解决方案,还必须依靠Bus总线,RabbitMQ等实现,配置起来相对复杂,但是数据一致性可靠性还是比较高的,另外携程的apollo、还是百度的disconf,貌似都远比它强大好用的多

Spring Cloud Eureka:他是一个注册中心的组件,同类的可以有ZK,Nacos等;

Spring Cloud Zuul:网关也并不是非Spring Cloud netflix下的zuul不可

···

总而言之,言而总之:

1.在针对性的学习技术上,重点应放在Spring,SpringBoot方向,尤其SpringBoot可以说是当下java web项目的支柱技术;

2.从成本考虑,可分为大小公司,在项目架构色选择上,整体来说采用SpringCloud架构的的项目代价成本相对较高,不管是从开发,还是运维都是这样

3.就算是项目架构采用分布式,微服务,前后端分离,SpringCloud生态模式,也不应该把眼观局限在SpringCloud的极大组件上,可以考虑集成同类的开源的相关组件也不似不错的选择

相关推荐
Goboy2 分钟前
温故而知新,忆 Spring Bean 加载全流程
后端·面试·架构
@航空母舰1 小时前
在 Spring Boot 中使用 WebMvcConfigurer
spring boot
Hello-Mr.Wang1 小时前
使用Spring Boot和PageHelper实现数据分页
java·开发语言·spring boot
武子康2 小时前
AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kimi‑K2开源大模型解读与实践
人工智能·gpt·ai·语言模型·chatgpt·架构·开源
你我约定有三2 小时前
spring--xml注入时bean的property属性
xml·java·spring
Codebee2 小时前
OneCode 3.0 VFS客户端驱动(SDK)技术解析:从架构到实战
java·后端·架构
Kookoos3 小时前
ABP VNext + 多级缓存架构:本地 + Redis + CDN
redis·缓存·微服务·架构·abp vnext
喜欢敲代码的程序员3 小时前
Spring Boot中请求参数读取方式
java·spring boot·后端·spring
tianchang3 小时前
create-vue-ssr - 现代化Vue SSR开发的一站式解决方案
前端·vue.js·架构
灰小猿4 小时前
多级@JsonTypeInfo和@JsonSubTypes注解使用详解及场景分析
java·后端·mysql·spring·spring cloud