Spring,SpringMvc,SpringBoot三者之间有什么区别?

Spring是一种轻量级开源框架以IOC(控制反转)和AOP(面向切面编程)为内核。IOC提供了一个容器,可以管理应用程序中的对象(称为Bean),并提供了一套丰富的功能,如依赖注入、面向切面编程、事务管理等。Spring框架可以用于构建任何类型的Java应用程序,包括Web应用程序、桌面应用程序和批处理应用程序等。

Spring MVC:Spring MVC是Spring框架的一部分,用于构建Web应用程序它提供了一个基于MVC(模型-视图-控制器)模式的Web框架,用于处理Web请求和响应。Spring MVC通过将请求映射到相应的处理器方法,并使用视图来呈现响应,使得构建Web应用程序变得简单和灵活。

Spring Boot:Spring Boot是一个用于简化Spring应用程序开发的框架。它提供了自动配置和约定优于配置的原则,使得开发者可以快速搭建和运行独立的、生产级别的Spring应用程序。Spring Boot内置了许多常用的第三方库和框架,简化了配置和部署过程。它还提供了一组用于开发Web应用程序、RESTful服务和微服务的起步依赖项。

三者之间的关系:

1)层次关系:

  • Spring是最底层的框架,提供了依赖注入、面向切面编程、事务管理等功能,可以用于构建各种类型的Java应用程序。
  • Spring MVC是Spring框架的一部分,构建在Spring之上,专注于Web应用程序的开发,提供了基于MVC模式的Web框架。
  • Spring Boot是一个用于简化Spring应用程序开发的框架,构建在Spring之上,提供了自动配置和约定优于配置的原则。

2)依赖关系:

  • Spring MVC依赖于Spring框架,通过Spring的容器管理和注入来实现Web应用程序的开发。
  • Spring Boot依赖于Spring框架和Spring MVC,使用它们的功能来简化应用程序的配置和开发。

Spring是基础框架,Spring MVC是构建在Spring之上的Web框架,而Spring Boot是构建在Spring和Spring MVC之上的简化开发框架。使用Spring Boot可以快速搭建和运行独立的、生产级别的Spring应用程序,并利用Spring和Spring MVC的功能来实现各种应用需求。

Spring是底层的基础,Spring MVC是构建在Spring之上的主体结构,而Spring Boot是在整个体系基础上提供了更高级的便利和效率。就像建筑物一样,这三者相互依赖,共同构成了一个完整的应用程序框架。


为什么开发使用SpringBoot?

SpringBoot有很多优点:

一、独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
二、简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
三、自动配置
Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启
动器就能拥有web的功能,无需其他配置。
四、无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。


谈谈对IOC和AOP的理解

IOC有两个概念,控制反转和依赖注入

控制反转:是⼀种设计思想,将对象的创建和管理交给IOC容器完成,从⽽降低对象之间的耦合性,提⾼代码的可维护性和可扩展性。


依赖注⼊:IOC容器在运⾏期间,可以通过配置文件或注解来描述对象之间的依赖关系,而不需要修改代码,从⽽实现对象之间的解耦,通过依赖注⼊,可以将代码中的依赖关系从代码中移除,提高代码的灵活性和可维护性。

AOP:⾯向切⾯编程,通过对业务逻辑的各个部分进⾏隔离从⽽实现解耦,是通过预编译和动态代理实现程序功能的统⼀维护的⼀种技术。


底层原理:通过代理模式实现,会在运⾏时动态创建⼀个代理对象,代理对象包装了原始对象,拦截了对原始⽅法的调⽤。当某个⽅法被调⽤时,代理对象会执⾏额外的逻辑,再将控制权交给原始对象来完成实际的业务逻辑


描述一下SpringMVC的执行流程

未完待续...

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值