Spring、Spring Boot、Spring Frame、Spring MVC区别
Spring、Spring Boot、Spring Frame、Spring MVC区别
spring、springboot、springcloud的区别
Spring,是整个生态,其下有很多产品,如Spring Boot、Spring Frame、Spring MVC等。
Spring Boot,用于快速、方便、简单的搭建一个Spring项目。之所以如此,是因为Spring Boot融合了许多第三方库,提供了简单的方式去配置这些依赖,避免了开发人员对包的导入(仅需要导入一个starter即可)和繁琐的xml文件配置。并且无需安装容器的情况下就可以使程序跑起来(内嵌了tomcat/jetty容器)
Spring Framework,是一个开源的应用程序框架,是一个一站式的轻量级的java开发框架,核心是控制反转(IoC)和面向切面(AOP),针对于开发的WEB层(springMVC)、业务层(IoC)、持久层(jdbcTemplate)等都提供了多种配置解决方案。下图是包含的东西
可以看到,经常使用的控制反转(IoC)、面向切面(AOP)、Spring MVC等都包括在其中
Spring MVC是Spring Framework框架下的一部分。Spring 出来以后(DI、AOP等),大家觉得很好用,于是出现了基于 Servlet 的一个 MVC 框架,主要解决 WEB 开发的问题
Spring Cloud事实上是一整套基于Spring Boot的微服务解决方案。它为开发者提供了很多工具,用于快速构建分布式系统的一些通用模式,例如:配置管理、注册中心、服务发现、限流、网关、链路追踪等。
Spring Cloud本身没有问题,有问题的是它的适配方案。你俯瞰一下Spring Cloud的整个微服务生态,你会发现真的不可替代的组件又有几个?甚至它的一些组件,笔者压根不会考虑将它引入项目中,比如:
Spring Cloud Sleuth:它是链路追踪解决方案,很明显,我只会考虑Skywalking、Pinpoint、CAT。
Spring Cloud Config:它是一个配置中心解决方案,无论是携程的apollo、还是百度的disconf,都远比它强大好用的多。
网关也并不是非Spring Cloud netflix下的zuul不可。非Spring Cloud生态下还有优秀的kong、Traefik、soul都是非常不错的选择。