做Java开发的人一提起Spring,首先在脑海中浮现出的就是“IoC”,“AOP”,“Spring MVC”,“Spring Security”等等这些名词,甚至大有“无Spring不Java”的感慨。

说句不夸张的话,Java程序员只要精通了Spring,也就掌握了Java开发的精髓。

在整个Spring生态中包含了许多应用在特定场景的具体框架,如:“Spring Framework”,“Spring Security”,“Spring Boot”,“Spring Cloud”等等,初学者理清它们的关系很重要。

一、简单介绍

Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发WEB应用变得很容易。主要面向网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等。

Spring配置复杂,繁琐,所以推出了Spring Boot,约定优于配置,简化了spring的配置流程。

Spring Cloud构建于Spring Boot之上,是一个关注全局的服务治理框架。

二、Spring 与 SpringMVC

Spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(Spring MVC)、业务层(IOC)、持久层(jdbcTemplate)等都提供了多种配置解决方案。

SpringMVC是Spring基础之上的一个MVC框架,主要处理WEB开发的路径映射和视图渲染,属于Spring框架中WEB层开发的一部分。

三、Spring MVC与Spring Boot

Spring MVC属于一个企业WEB开发的MVC框架,涵盖面包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等配置相对比较繁琐复杂。

Spring Boot框架相对于Spring MVC框架来说,更专注于开发微服务后台接口,不开发前端视图。

四、Spring Boot与Spring Cloud

Spring Boot使用了默认大于配置的理念,集成了快速开发的Spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消XML配置,是一套快速配置开发的脚手架,能快速开发单个微服务。

Spring Cloud大部分的功能插件都是基于Spring Boot去实现的,Spring Cloud关注于全局的微服务整合和管理,将多个Spring Boot单体微服务进行整合以及管理;Spring Cloud依赖于Spring Boot开发,而Spring Boot可以独立开发。

五、总结

Spring是核心,提供了基础功能。
Spring MVC 是基于Spring的一个 MVC 框架。
Spring Boot 是为简化Spring配置的快速开发整合包。
Spring Cloud是构建在Spring Boot之上的服务治理框架。

六、Spring的生态系统

Spring是一个生态系统,提供许多有用的编程框架或工具集。

当下最为流行的Spring项目是这4个:Spring Framework,Spring Security,Spring Boot,Spring Cloud。深入了解Spring生态的每一个项目,对Spring生态有一个完整的认识,在实际中根据需要灵活选择和使用即可。