⾯霸之路——SpringMVC和Springboot的区别springboot框架的作用
如果在⾯试中HR让你谈谈Spring、SpringMVC和Springboot的关系和区别,⼤家准备怎么回答呢?如果突然问到这种问题我肯定是说不出来,即便说出来了也是⼏笔带过。为了以后⾯试从容且完美的回答出这个问题,我们就从他们的层级、特点以及实现的功能来谈⼀谈吧!
Spring
Spring 框架就像⼀个家族,有众多衍⽣产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop,ioc 提供了依赖注⼊的容器 aop ,解决了⾯向横切⾯的编程,然后在此两者的基础上实现了其他延伸产品的⾼级功能。Spring MVC是基于 Servlet 的⼀个MVC 框架,主要解决 WEB 开发的问题,因为 Spring 的配置⾮常复杂,各种XML、 JavaConfig、hin处理起来⽐较繁琐。于是为了简化开发者的使⽤,从⽽创造性地推出了Spring boot,约定优于配置,简化了spring的配置流程。
说得更简便⼀些:Spring 最初利⽤“⼯⼚模式”(DI)和“代理模式”(AOP)解耦应⽤组件。⼤家觉得挺好⽤,于是按照这种模式搞了⼀个 MVC框架(⼀些⽤Spring 解耦的组件),⽤开发 web 应⽤( SpringMVC )。然后⼜发现每次开发都写很多样板代码,为了简化⼯作流程,于是开发出了⼀些“懒⼈整合包”(starter),这套就是 Spring Boot。
SpringMVC
Spring MVC提供了⼀种轻度耦合的⽅式来开发web应⽤。
Spring MVC是Spring的⼀个模块,是⼀个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,使得开发web应⽤变得很容易。解决的问题领域是⽹站应⽤程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
Springboot
Spring Boot实现了⾃动配置,降低了项⽬搭建的复杂度。
众所周知Spring框架需要进⾏⼤量的配置,Spring Boot引⼊⾃动配置的概念,让项⽬设置变得很容易。Spring Boot本⾝并不提供Spring框架的核⼼特性以及扩展功能,只是⽤于快速、敏捷地开发新⼀代基于Spring框架的应⽤程序。也就是说,它并不是⽤来替代Spring 的解决⽅案,⽽是和Spring框架紧密结合⽤于提升Spring开发者体验的⼯具。同时它集成了⼤量常⽤的第三⽅库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应⽤中这些第三⽅库⼏乎可以零配置的开箱即⽤(out-of-the-box),⼤部分的Spring Boot应⽤都只需要⾮常少量的配置代码,开发者能够更加专注于业务逻辑。
Spring Boot只是承载者,辅助我们简化项⽬搭建过程的。如果承载的是WEB项⽬,使⽤Spring MVC
作为MVC框架,那么⼯作流程和你上⾯描述的是完全⼀样的,因为这部分⼯作是Spring MVC做的⽽不是Spring Boot。
对使⽤者来说,换⽤Spring Boot以后,项⽬初始化⽅法变了,配置⽂件变了,另外就是不需要单独安装Tomcat这类容器服务器
了,maven打出jar包直接跑起来就是个⽹站,但你最核⼼的业务逻辑实现与业务流程实现没有任何变化。
所以,⽤最简练的语⾔概括就是:
Spring 是⼀个“引擎”;
Spring MVC 是基于Spring的⼀个 MVC 框架;
Spring Boot 是基于Spring4的条件注册的⼀套快速开发整合包。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论