【Java】Spring、SpringBoot、SpringCloud理解和入门
关于Spring、SpringBoot、SpringCloud我总结了几点。
- Spring是轻量级的容器框架,目前大多数项目不直接使用Spring的。
- SpringBoot是Spring的升级版,主要应用单个微服务,关联性小的项目、规模小、硬件要求不高的项目。
- SpringCloud基于SpringBoot来实现微服务开发组件。主要应用于规模较大,需要多个微服务、硬件要求高的项目。
- 学习Spring Cloud,需要学习Spring Cloud Alibaba (Spring Cloud二代),与Spring Cloud Netflix(Spring Cloud 一代核心思想相同)。
所以,对于目前来说,如果作为普通的Java程序员。我们只要专注于业务本身,不去溯本求源,先后学习SpringBoot和SpringCloud即可。毕竟,“吾生而有涯,而知也无涯”。用我有限的生命和智商,去追寻无限的知识,太难了(以有涯随无涯,殆已!)。题外话,每个人的能力大小不同,能够溯本求源,能够不断优化出新框架的人很厉害。就像汽车的设计师很强,我只能做汽车流水线上的工人,进着自己微薄之力。
下面,我们来更具体的了解一下Spring 、SpringBoot、SpringCloud框架。
Spring
Spring 的框架图如下:
说明:是一种轻量级的J2EE(企业开发应用程序)框架。最初是为了解决EJB开发笨重臃肿的问题(EJB属于分布式开发,大门中小型企业使用的是非分布式的项目)。消除繁琐的配置工作、让开发人员可以专注的有效的业务逻辑。
特点:轻量级、 低成本、安全、灵活。
应用场景:简单的进行一些中小型项目。适用于关联性小、规模小、硬件不高的项目。不过,由于SpringBoot默认了一些配置,让开发入门更简单。现在已经被SpringBoot替代。所以,近年的Java的培训班一般不讲这一块。
SpringBoot
SpringBoot框架图如下:
说明: 是Spring的升级版,可以理解为SpringBoot是Spring的套件,同样,基于SpringBoot框架可以依赖注入和引入其他技术。SpringBoot提供了默认配置,从而简化了配置过程(之前课程的SSM整合,在大量不直接使用Spring后,已经消失在Java培训课程中)。所以,程序员的工作,可以更专注于业务逻辑中。
特点:轻量级、 低成本、安全、灵活。
应用场景:适用于关联性不强的单个微服务、规模小、硬件要求不高的项目。
SpringBoot确实更方便了。使用Spring框架时,就仿佛我们需要组装一台电脑,我必须先知道他的组成:主板、内存、CPU、硬盘、显卡、声卡、网卡、显示器、键盘、鼠标、电源……,然后把他们组装起来,才能使用。使用SpringBoot框架时,就好像我们直接买一台成品电脑、直接可以使用(默认配置)。后续需要加内存、把机械硬盘改为固态硬盘,就相当于SpringBoot中修改配置,只需要少量的工作(少量的代码)即可实现。所以,SpringBoot比Spring入门块,当然就能更快的登堂入室。
SpringCloud
SpringCloud框架图如下:
说明:SpringCloud是基于SpringBoot来实现的微服务架构开发组件。简化了分布式分布式系统基础设施的开发(服务注册、配置中心、消息总线、负载均衡、断路由、数据监控等),可以用SpringBoot开发风格做到一键启动和部署。
SpringCloud没有重复制造论事,知识将各家公司开发的比较成熟、经得起考验的服务框架组合起来。屏蔽掉了复杂的配置和实现原理。它是一些框架的集合。
特点:简单易懂、易部署、易维护
应用场景:规模较大的、需要多个微服务、对硬件要求较高的项目。主要应用于分布式项目。
为什么还需要学习SpringCloud Alibaba?
原因:SpringCloud Netflix(一代)中的一些组件闭源了,不爱维护。 而SpringCloud Alibaba(二代)吸收了Netflix的框架思想,并提高了性能。从2021年其,微服务的主力是Alibaba。核心思想不变,举一反三,学起来也并非难事。
参考
[1] https://baijiahao.baidu.com/s?id=1739317929327983505&wfr=spider&for=pc