Spring,SpringMVC和SpringBoot区别于联系

一、Spring框架

  1. Spring框架的能力就是IOC和AOP,IOC提供了依赖注入(DI)的容器,AOP提供了面向切面编程能力,这两个能力的本质是实现了应用组件(Bean)之间的解耦。在这两个功能之上spring实现了其他延伸产品的高级功能。
  2. Spring家族的其他产品,例如:Spring Boot、Spring Security、jpa、SpringMVC等都是基于Spring框架衍生出来的。

二、SpringMVC和SpringBoot框架

  1. Spring框架最初利用工厂模式(IOC和DI)和代理模式(AOP)解构应用组件,大家觉得很好用。于是按照这个模式搞了一个MVC框架(一些使用Spring的解耦组件),用来开发web应用,这就是SpringMVC框架。

  2. 但是发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些整合好的懒人包(starter),这就是Spring Boot

SpringMVC功能

SpringMVC提供了一种轻度耦合的方式来开发web应用

SpringMVC是Spring的一个模块,是一个web框架,通过Dispatcher Servlet, ModelAndView 和 View Resolver等组件以及之间的协同,使web开发变得容易。web开发者只关心URL路由、Session、模板引擎、静态资源等工作即可。

SpringBoot功能

SpringBoot实现了自动配置,降低了项目搭建的复杂度

众所周知,使用Spring框架需要大量的配置,SpringBoot引入自动配置的概念,让项目配置变得很容易。

Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。

Spring Boot集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

三、SpringBoot与Spring和SpringMVN以及第三方组件关系

不使用SpringBoot
  • 如下图:
    绿色为Spring家族产品,蓝色为第三方产品
  • 使用Spring进行开发需要复杂的配置:
    安装web服务器;服务开发完打包部署到web服务器;
    Spring框架整合SpringMVC;
    Spring框架整合Shiro框架;
    Spring框架整合缓存Redis;
    Spring框架整合MQ;
    Spring框架整合持久层框架MyBatis等;
    每使用一种框架的引入和完成后部署都需要进行复杂的配置。
    Spring,SpringMVC和SpringBoot区别于联系_第1张图片
使用SpringBoot
  • 如下图:
    绿色为Spring家族产品,蓝色为第三方产品
  • 使用SpringBoot进行开发需要的配置:
    不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站
    项目初始化方法变了:直接使用启动@SpringBootApplication类即可
    配置文件变了:SpringBoot集成了大量常用的配置和第三方配置,几乎可以零配置或者很少的配置就可以使用。
  • 注意
    Spring Boot只是承载者,是辅助你简化项目搭建过程的,本身不参与何业务。比如:搭建(承载)的是WEB项目,使用的是Spring MVC框架,那么业务流程依然是由SpringMVC完成;再比如,搭建(承载)的是Service服务项目,使用的是Spring和MyBatis,那么业务流程依然是由Spring和MyBatis完成;Spring Boot只负责搭建过程,不参与业务。

Spring,SpringMVC和SpringBoot区别于联系_第2张图片
借鉴博文:https://www.cnblogs.com/zhonglihai/p/9109413.html

你可能感兴趣的:(开发框架专栏)