Spring、SpringBoot、Spring Cloud

从字面上理解Spring、SpringBoot、Spring Cloud的区别

SpringBoot、Spring Cloud是我们经常看到的名词,我最近面试的有些学生已经不懂为什么,他直接就去想那种复杂的场景,但是我们正常的业务,哪怕大公司流量很大,但大部分业务流量是没有那么大的,就算业务比较大他分成不同的服务器,他流量还是在一定的可控性内,所以大部分90%左右的项目,就算在大公司他也是正常考虑的,不用一上来就很乱。

今天呢,我就讲讲SpringBoot和Spring Cloud的区别。

boot这个词就是引导加载的意思,SpringBoot的意思就是你加载和引导的时候要做的事,这个时候可以在你刚开始初始化加载的时候,就把需要的组件用这个配置的方式,把这个组形给它封装起来,而不用你一个个去通过我们说的XML也好,或者其他的方式把它搭建起来,所以说SpringBoot是基于惯例和我们自己的配置,它的特点就是去XML的这种格式。那Spring本身你要跑一个Springweb ,spring mvc,你要通过入口是Web的XML嘛,你需要配置很多很多的文本,才能跑起来,所以SpringBoot是两个东西,一个是配置相关的,一个是运行相关的。你理解boot这个名词,其实你就很好理解SpringBoot的概念,

那Spring Cloud, cloud是云的意思,Spring Cloud就是云服务,这个云听起来云里雾里是吧,这个我们要去展开一下,这是微服务,是在什么场景下的呢?像我们一般在学校做事情,或者我们在一个中小公司,流量不是很大的公司,一般情况下我们不用微服务,用并行就好了,因为业务如果是流量比较大了,我们能够撑得起的时候,分成一个服务里两个,就是做成多个集群分布式。

那什么是到微服务呢,就是流量非常非常大,业务非常多,互相调用非常杂,我调你的,acp请求调你要接口互相管理,因为不同项目进行调用嘛,那就有可能会出现很多问题,一个是可能这个调用会失效,那怎么能保证他不失效,怎么能保证流量大的时候他能稳定,这个时候我们采用了一套。所以你会发现真正出现一个东西,他不是凭空来的,他是因为特殊场景,但你会发这么一做就微服务的目的,就是为了解决流量大的情况下,项目比较多之间的接口的稳定性,传输调用的稳定性和适配性,你理解在什么场景下就知道了。

有同学说那消息队列是什么意思?消息队列就是我们平时,一个接口叫另外一个接口,我们像写代码一样,他要从第一行代码往上执行,执行到最后一句话返回return,这就叫同步,你必须要执行完才能返回来,那这个时候效果效率就很差,所以我叫你的时候,你必须执行完再告诉我,结果是什么,但是有些接口他是不需要知道执行完的接口结果,比如说我们叫通知消息通知,我告诉你一个事,你收到就好了,你边执行边存储下来,或者怎么去分发的我不关心,所以我不用把执行完的告诉你,最好是我跟你发消息,你就反问,因为我们一个请求他必须给应答,那他只要告诉我就好了,不用再执行,你在执行前就告诉我,那这个就是为了提高性能去做这事情,但如果你的性能本身没有稳定,流量很小,你就执行完了再告诉我,他也不影响稳定性或者他的执行,那你就没有必要用MQ。

所以很多同学,连使用场景都不清楚,你觉得学框架对你的帮助很大吗?大家都会用的东西,你觉得是帮助很大吗,但是这东西你工作之后又不用,公司已经搭好了,或者他不会让普通员工做,他有架构部的人,或者是架构师在做这个事情,普通员工就是做业务开发呀,产品什么思路你做什么事情,他不是我们需要掌握的技能点,跳槽时候背一背就好了,所以很多事情就是空中楼阁,虚无缥缈。不懂又有点懂,但是这个对考试来说就不行,跟考试这种状态,就是及格左右啊,大家可能考试经验很丰富的时候,这东西就不太行,所以今天我们拿这个事来讲,让大家理解在什么场景下,他的这种微服务的扩展,或者中间件的扩展,你理解这个场景之后,这些名词比如什么叫云,什么叫引导,什么叫启动,什么叫同步,什么叫异步,自然就很好理解了。

#spring##springboot##springCloud##晒一晒我的offer##校招#
全部评论
可是现在不会的话面试都过不去
2 回复 分享
发布于 2023-07-18 08:20 广东

相关推荐

07-22 22:50
已编辑
重庆文理学院 Java
面试官很好。25分钟,发现了许多欠缺的地方1.集合有哪几种类型2.map有哪几种3.ConcurrentHashmap实现线程安全的原理4.hashmap的初始化大小和扩容过程。5.JVM1.8由哪些块组成6.项目里面一般怎么来做多线程。(只回答了个用线程池。。)7.扣减库存执行update的时候,会不会出现多线程不安全的情况呢。(被提醒就是超卖问题)脑子瓦特了没想起来回答了个加分布式锁,CAS结合状态字段。被反问那这样不就成了单线程了么。8.慢sql排查优化思路。9.有一个学生表,有id,name,age......字段。如果根据name去执行update的话,会产生什么样的锁,此时锁这一行记录还是整张表。10.项目中redis的用途11.缓存雪崩的解决方案12.说说对ioc的理解,底层是用什么结构来存储bean的。13。springboot的优点,自动装配原理14.springboot里面定义一个bean有哪些方式15.aop写过东西没有?反思:应该先回答对aop的理解和原理的,在项目中的应用场景应该等他追问再回答。直接一顿瞎掰掰,容易跳过他不想听。16.过滤器,拦截器,监听器,实现原理,应用场景和区别。17.解释Bean的生命周期的理解(初始化想给某些成员变量赋值该怎么做)。(就回答了记得点评哪儿有个postconstruct注解可能有关)被指点这儿得结合生命周期每个阶段来说明。18.MQ的应用场景,为什么要用mq。19.简历上写了lua,lua脚本也会写么?(没有底气的回答:结合ai写的。。。)20.被提醒cloud注册中心,网关,中间件之类的还是要去了解了解。还没学的简历上面也没写jvm和微服务cloud也要被问么。我跪了。。。。
点赞 评论 收藏
分享
评论
4
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务