概念
Spring Cloud :Spring Cloud 是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案,Spring Cloud 基于 Spring Boot 。
Spring Boot :是 Spring 的一套快速配置脚手架,可以基于Spring boot快速开发单个微服务。特点:内置servlet容器,约定大于配置。
Spring :是一个轻量级的开源框架,是为解决企业应用开发的复杂性而创建的。特点:Aop、Ioc。
依赖关系 Spring>Spring Boot >Spring Cloud
Spring 与Spring Boot 开发复杂度对比
Spring:
(1)需要Web.xml 或其他Servlet容器配置文件,不同的容器的配置文件有不同的格式
(2)需要构造WAR包并部署到Servlet容器中
(3)不同的Servlet容器有不同的配置方式,如端口,线程池等配置方式都需要了解
(4)ClassLoader继承机制复杂
(5)单独配置日志功能
(6)理解ApplicationContext内的各种配置与继承关系
Spring Boot:
(1)提供统一的组件模型,不需要知道Servlet组件模型;
(2)统一所有配置格式,开发者只需要学习Spring配置模型,这套配置模型会生效于应用,以及对应的三方组件(数据库,redis等);
(3)从main函数执行将会简化应用的启动与关闭;
(4)一个更简单的纯java类加载层次结构;
(5)简单的开发工具,不需要复杂的IDE来构造WAR包,并将其部署到Servlet容器中;
Spring Boot 对以上功能的实现方案
(1)内置Servlet容器,提供统一的容器抽象。这个容器抽象中有 Tomcat 、Jetty、Undertow和Netty的实现类;
(2)对所有组件的配置项,可以使用相同的格式在applicationn.properties 和 appliction.yml中配置,不需要为单独的组件创建不同的配置方式;
(3)提供了SpringApplication用于直接运行Spring应用,无需关注ApplicationContext的构造;
(4)只存在一个ClassLoader,不会像单独的Servlet容器有独立的ClassLoader;
(5)内置Servlet容器,直接执行main方法即可,无需构造War包;