一、spring boot 可以理解为是spring的全家桶 启动器
他的场景是,你想开始一个工程,里面会用到很多的第三方工具,如
1,spring mvc 用来作VIEW层的控制器,
2,spring core,用来作ioc,
3,mybatis ,用来方便操作db,
4,连下redis,
5,连下 es
这么多组件,你是需要一个个研究怎么和spring 结合起来用,
spring boot 为了解决这些繁杂的事情,应运而生,只要一个配置,就能把相应的 组件 给加进来,如maven的例子:
“`
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
“`
从名字来看,就很明显了,一个start,就把后面你要找XX.JAR的事给省下来了,所以,它就像是腾讯系的 QQ入口, 阿里系的 支付宝入口,百度的搜索入口。
二,spring cloud
spring cloud 可以理解为 spring为 分布式&集群 (有个时髦的词汇叫微服务) 准备的大一统解决方案的组件集合.
所以,他不是 一个 jar包可以包括的,他是一堆的jar包。
他的场景是,当你的应用到了一定级别,系统 压力过大了,所以就需要把服务器运算扔到多台机器中去,即分布式&集群,这个时间你要考虑很多的问题
1,进程间的通信是怎样的?全部都写成接口太蛋疼了
2,进程太多了管不过来?有没有一个视图可以看到我所有的注册
3,多个进程,配置怎么办?各有一套也挺头痛的,有一个集中式配置就好了.
4,不同的业务间的负载均衡怎么办?每个都加个nginx?
5,系统中某个节点发生了崩溃怎么办?那我们的有一部分请求负载到那里就总会失败,能不能自动剔除掉?
现在这些个烦恼的问题,你可以自己解决,也可以引入spring cloud来更好的处理!至于怎么处理,你自己使用的时候体会吧。
结论:
这两货不是一样的概念,boot 是代码工程的架子,cloud是微服务架构的解决方案及基础实现.