Spring Farmework,Spring Boot,Spring MVC 分别是什么?它们的关系又是什么?

Spring Framework是一个综合性的Java开发框架,提供了一系列的模块和功能来简化企业级应用程序的开发。Spring框架包括IoC(Inversion of Control)容器、AOP(Aspect-Oriented Programming)支持、数据访问、事务管理、模型-视图-控制器(MVC)等功能。

1. Spring Farmework:

**用途:**Spring 是一个开发应用框架,提供基础设施支持,用于开发Java应用程序。

主要模块:

  • Spring Core(Spring核心): 提供IoC容器和依赖注入功能,使开发者能够更容易地管理组件之间的关系和依赖。

  • Spring AOP: 提供面向切面编程的支持,允许将横切关注点(如日志记录、事务管理)模块化,提高代码的模块化和可维护性。

  • Spring Data Access: 包括对JDBC、ORM(Object-Relational Mapping)框架(如Hibernate)等的支持,简化了数据访问层的开发。

  • Spring Transaction Management: 提供声明式事务管理的支持,简化了事务的配置和管理。

  • Spring MVC: 是Spring框架中的Web模块,提供了一种基于模型-视图-控制器设计模式的Web应用程序开发方式。


2. Spring Boot:

**用途:**Spring Boot 是对 Spring的封装,为了简化 Spring 应用开发,在中小型企业没有成本研究自己的框架,使用 Spring Boot 就能快熟搭建框架,减低开发成本,让开发人员更加专注于 Spring应用的开发,无需过多关注XML的配置和一些底层实现。

特点:

  • 约定优于配置: 通过默认值和约定进行快速开发,无需大量配置。
  • 嵌入式服务器: 包括嵌入式服务器(如Tomcat、Jetty),可将应用程序部署为独立的JAR文件。
  • 自动配置: 根据项目依赖自动配置组件。

3. Spring MVC

**用途:**Spring框架中的一个模块,用于构建遵循MVC设计模式的Web应用程序。

特点:

  • DispatcherServlet: 处理HTTP请求并管理将控制权传递到适当控制器的流程。
  • 控制器: 处理用户输入,处理请求并返回适当的模型和视图的组件。
  • ViewResolver: 将逻辑视图名称解析为实际视图。

Spring Boot 是基于 Spring 框架的一个子项目,用于简化 Spring 应用程序的搭建和开发。Spring Boot 通过提供一些默认配置和约定大于配置的原则,使得开发者能够更快速地搭建和部署 Spring应用,减少了繁琐的配置工作。Spring Boot 中集成了一些常用的库和工具,同时提供了自动化的配置。

在Spring框架中,Spring MVC 是用于构建 Web 应用程序的模块。它通过提供一个MVC架构,使得开发者能够更容易地组织和管理Web应用程序的代码。Spring Boot则可以用来简化Spring MVC应用程序的开发和部署。

简而言之,关系可以总结为:

  • Spring Framework(Spring框架): 提供了全面的Java开发框架,包括IoC容器、AOP、数据访问、事务管理等。

  • Spring Boot: 是Spring框架的子项目,旨在简化Spring应用程序的搭建和开发,提供默认配置和约定大于配置的特性。

  • Spring MVC: 是Spring框架中的Web模块,用于构建基于MVC设计模式的Web应用程序。在Spring Boot中,可以使用Spring MVC来构建Web应用。

Spring Boot 和Spring MVC 都属于 Spring。Spring Boot是基于 Spring 的快熟开发整合包,而Spring MVC 是 基于 Spring 的一个 MVC 模式构建Web应用程序框架。

相关推荐
hqxstudying3 分钟前
java依赖注入方法
java·spring·log4j·ioc·依赖
春生野草30 分钟前
关于SpringMVC的整理
spring
Bug退退退1231 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq
hello早上好2 小时前
CGLIB代理核心原理
java·spring
先睡8 小时前
Redis的缓存击穿和缓存雪崩
redis·spring·缓存
Bug退退退12313 小时前
RabbitMQ 高级特性之死信队列
java·分布式·spring·rabbitmq
booooooty19 小时前
基于Spring AI Alibaba的多智能体RAG应用
java·人工智能·spring·多智能体·rag·spring ai·ai alibaba
极光雨雨19 小时前
Spring Bean 控制销毁顺序的方法总结
java·spring
Spirit_NKlaus19 小时前
解决HttpServletRequest无法获取@RequestBody修饰的参数
java·spring boot·spring
lwb_011820 小时前
SpringCloud——Gateway新一代网关
spring·spring cloud·gateway