Spring,SpringMVC,SpringBoot的区别
什么是Spring?
Spring 一般代指Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,让框架来帮你管理业务/工具对象,包括他的创建,销毁等,比如Spring项目中的Bean,它代表了Spring管辖的对象。Spring 的官方原则就是有好的解决方案的时候只需要通过Spring集成即可,而不需要自己再重复造一份(轮子)。Spring Freamework 使代码据有个更好的灵活性和扩展性。(可以集成Mybatis,hibernate等等)
什么是Spring MVC?
Spring MVC(Model view Control)是Spring的一部分,Spring出来以后,大家使用后觉得不错,就按照这种模式设计了一种MVC的框架,主要用于开发WEB应用和网络接口,他是Spring的一个模块,通过Dispatcher(转发器),Servlet(服务连接器),ModelandView(模型视图)和View Resolver(视图解析),让应用开发更加轻松,
什么是Spring Boot?
初期的Spring需要通过代码加配置的方式来为项目提供了良好的扩展性和灵活性,但是随着Spring越来越庞大,配置文件也越来越复杂,比如说首先通过配置文件来声明Dispatcher Servlet,然后通过配置文件来声明servlet的详情,如data source,bean等等若要添加其他功能,如security则需要添加相应的配置,最后增加代码,如controller,servicr,model等,最后生成war包,通过容器进行启动。这样看起来似乎过于复杂了,于是乎,Spring社区推出了Spring Boot,它的目的在于 实现自动配置,降低项目搭建的复杂度,甚至不需要额外的WEB容器,直接生成jar包执行即可,spring-boot-dtarter-web模块中有一个内置的tomcat,可以直接提供容器使用,Spring Boot用默认的配置来代替spring的人工配置,同时 Spring Boot也是遵循约定优于配置的原则。
在Spring Boot中,所有的包都是starter的形式,Spring的官方解释如下:
Starters是一系列及其方便的依赖描述,通过在你的项目中包含这些starte,你可以一站式获得你所需要的服务,则无需像以往那样copy各种实例配置及代码,然后调试,真正做到开箱即用;比如你想用Spring JPA进行数据操作,只需要在你的项目依赖中引入spring-boot-starter-data-jps即可
Spring,SpringMVC,Spring Boot 的比较
Spring就是一个大家族,所有的产品(boot,jpa等)基础都是Spring的IOA和AOP,IOC提供了依赖注入的容器,AOP解决了面向切面的编程。Spring MVC是基于Servlet的一个MVC框架,主要解决WEB开发问题,因为Spring的配置各种xml,properties太过于麻烦,,于是Spring Boot诞生了,
graph LR
subgraph Spring
subgraph core
end
subgraph spring
springmvc-->springdata
end
end