当前位置: 首页 > article >正文

Spring、SpringMVC、SpringBoot都是什么,有什么区别

Spring、SpringMVC、SpringBoot都是什么,有什么区别

  • Spring:是一个轻量级的基于IOC和AOP的容器框架,是用来简化开发流程的一套框架。

    • IOC:Inversion of Controller 控制反转。不好理解的概念:应用不负责依赖对象的创建,而是把它们创建的控制器交给外部容器,这种控制权的转移就是控制反转。简单说的意思就是
    public void add(User user){
    	@Resource
    	private UserServiceImpl userServiceImpl;    
    	//如果没有IOC,我们这里想调用userServiceImpl里的add方法,
    	//应该写为UserServiceImpl userServiceImpl = new UserServiceImpl(); 但是IOC帮我们做了这件事
    
      userServiceImpl.add(user);
    }
    
    • DI:Dependency Injection 依赖注入。概念:在运行期,由外部容器将依赖对象传给应用的过程。简单意思:IOC帮我们创建了对象,但是传给谁,就是DI决定,也就是上面的例子中@Resource的作用体现的就是DI。
    • AOP:面向切面编程。概念:面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect)。不好理解吧,继续简单解释什么意思:Spring中的事务大家肯定都知道吧,那Spring中的事务是怎么实现的那,其实就是AOP去实现的。AOP就像个过滤器一样,它能知道你执行了什么方法,还能对方法的前后进行拦截,决定是否需要回滚事务。体现的就是一种动态代理的思想。那什么是动态代理那?可以看我之前的文章,里面就详细说明了静态代理和动态代理模式。
  • SpringMVC:是一个基于Servlet的MVC(Model-View-controller)框架,主要关注于Web层的请求处理和响应。项目通常需要部署在Web服务器上,如Tomcat、Jetty等。开发者需要将项目打包成war文件并部署在服务器上才能运行。它提供了很多注解,像是@RequestMapping这样用于映射请求路径的注解,要不然咱们写javaweb的时候,还要用flag.equals("add")这样的方式才能获取请求路径。

  • SpringBoot:是一个配置工具,整合工具。用来简化Spring的开发流程的,省去了很多繁琐的、重复的xml配置。SpringBoot主要关注于Spring应用的启动和运行,是一个一站式的解决方案。内嵌Tomcat,直接在main方法就可以启动程序。 maven打出jar包,直接就可以运行,不需要像war包一样,将其放在Tomcat的webapp目录下才行。它最最核心的功能就是自动装配,也就是main方法上的那个@SpringBootApplication注解。


http://www.kler.cn/news/293144.html

相关文章:

  • 如何使用事件流相关操作
  • Maven聚合与继承
  • 11、Django Admin启用对计算字段的过滤
  • 大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
  • Java反射机制讲解
  • C++set与map容器
  • 10Python的Pandas:样式Style
  • 数据访问:JPA
  • Django ORM - 如何单独使用 Django 数据库
  • AutosarMCAL开发——基于EB Gpt驱动
  • 【王树森】BERT:预训练Transformer模型(个人向笔记)
  • 2024 年高教社杯全国大学生数学建模竞赛题目-C 题 农作物的种植策略
  • 【Cesium实体创建】
  • HTML:charset讲解
  • Elasticsearch 再次开源
  • 开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
  • 计算机视觉中,什么是上下文信息(contextual information)?
  • uuid uuid uuid
  • SpringBoot总结
  • 理解 Axios、jQuery Ajax 和 Fetch 的差别
  • C/C++内存详解
  • Qt/QML学习-Tumbler
  • 电商创新:基于亚马逊国际商品详情API返回值的策略
  • 数学基础 -- 线性代数之LU分解
  • DCaaS:数据中心解决方案的经济高效选择
  • 【60天备战软考高级系统架构设计师——第三天:软件工程原则与常用方法】
  • python恶搞无限弹窗脚本
  • 监理工程师职业资格考试
  • 读书笔记:《深入理解Java虚拟机》(6)
  • AcWing算法基础课-786第k个数-Java题解