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

问:SpringFramwork都有哪些模块?

Spring Framework是一个由多个模块组成的庞大框架,这些模块共同提供了丰富的功能和工具,帮助开发人员构建高质量的企业级应用程序。
在这里插入图片描述

一、核心容器(Core Container)

  1. spring-core:核心模块,提供Spring框架的基本组成部分和功能,如控制反转(IoC)和依赖注入(DI)的最基本实现。
  2. spring-beans:Bean模块,提供BeanFactory接口以及与XML文件中的元素解析相关的类和接口,是Spring框架中管理Bean的基础。
  3. spring-context:上下文模块,提供应用程序范围的上下文信息,如环境配置、国际化、事件传播等,还扩展了BeanFactory,添加了Bean生命周期控制等功能。
  4. spring-context-support:上下文支持模块,提供Spring应用程序上下文所需的其他功能,如缓存管理、邮件发送等。
  5. spring-expression:表达式模块,提供Spring SpEL(Spring Expression Language)表达式语言的实现,用于在运行时查询和操作对象图。

二、数据访问/集成(Data Access/Integration)

  1. spring-jdbc:JDBC模块,提供JDBC的抽象层和DAO支持,简化了JDBC编程。
  2. spring-tx:事务模块,提供事务管理的支持,包括声明式事务处理和编程式事务处理。
  3. spring-orm:对象关系映射模块,提供整合Hibernate、JPA等ORM框架的支持,方便进行对象与关系数据库之间的映射。
  4. spring-jms:JMS模块,提供支持JMS API的抽象层和Spring的JMS支持,用于消息的生产和消费。
  5. spring-oxm:OXM模块,提供了一个抽象层以支撑OXM(Object-to-XML-Mapping),实现Java对象与XML数据之间的映射。

三、Web

  1. spring-web:Web模块,提供Spring MVC框架的实现和基本的Web支持,如文件分块上传功能等。
  2. spring-webmvc:Web MVC模块,是spring-web的一部分,提供了一个完整的MVC实现,包括DispatcherServlet等组件,以及@Controller和@RequestMapping等注解。
  3. spring-websocket:WebSocket模块,提供WebSocket的支持,允许在Web应用程序中实现双向通信。
  4. spring-webflux:响应式Web框架模块,支持非阻塞I/O和反应式编程模型,用于构建异步、非阻塞、事件驱动的服务。

四、面向切面编程(AOP)

  1. spring-aop:面向切面编程模块,提供Spring AOP框架的实现,支持拦截器、切点、通知等AOP概念,允许开发人员在不修改源代码的情况下添加横切关注点(如日志、事务管理等)。
  2. spring-aspects:基于注解的声明式AOP模块,提供基于注解的AOP切面实现,进一步简化了AOP的使用。

五、工具(Instrumentation)

  • spring-instrument:提供类工具支持和类加载器实现,通常用于在JVM启动时生成代理类,以支持AOP等功能。

六、消息(Messaging)

  • spring-messaging:消息模块,为消息传递提供了支持,包含了许多类和接口(如Message、MessageChannel、MessageHandler等),并提供了对STOMP协议的支持,可以在WebSocket上使用STOMP协议进行消息传递。自Spring 4起,该模块整合了spring-jms等消息相关功能。

七、测试(Test)

  • spring-test:测试模块,提供对Spring应用程序进行单元测试和集成测试的支持。它包含了许多实用的类和注解(如@RunWith、@SpringBootTest等),并提供了对JUnit、TestNG等测试框架的集成支持。

八、其他模块

  • spring-jcl:通用日志抽象,提供对不同日志框架的统一封装,方便开发人员在不同日志框架之间进行切换。
  • spring-javadoc:JavaDoc模块,提供Spring API的JavaDoc文档,方便开发人员查阅API文档。
  • spring-boot:Spring Boot模块,提供Spring Boot框架的支持,简化了Spring应用的创建和部署过程。
  • spring-data:Spring数据模块,提供对各种数据存储技术(如关系型数据库、NoSQL数据库等)的支持,包括许多子模块(如spring-data-jpa、spring-data-mongodb等)。

Spring Framework的模块众多且功能丰富,它们共同为开发人员提供了强大的企业级应用开发支持。开发人员可以根据自己的需求选择合适的模块来构建应用程序,从而提高开发效率和代码质量。


http://www.mrgr.cn/news/68196.html

相关文章:

  • 高校宿舍信息管理系统小程序
  • 网页版五子棋——用户模块(服务器开发)
  • 【系统架构设计师(第2版)】七、系统架构设计基础知识
  • 大厂面试真题-如果使用guava limiter实现实例级别的缓存
  • 基于用户画像的召回方法
  • 数据仓库之 Atlas 血缘分析:揭示数据流奥秘
  • 论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告
  • C++学习笔记----11、模块、头文件及各种主题(一)---- 模板概览与类模板(1)
  • 网络编程(一):UDP socket api => DatagramSocket DatagramPacket
  • 对话框(Dialog)
  • W3C HTML 活动
  • [数组排序] 1122. 数组的相对排序
  • 插入迭代器
  • 口播博主必装的五个App推荐,尤其是程序猿博主
  • 查缺补漏----内部排序算法排序趟数和比较次数
  • SQLI LABS | Less-33 GET-Bypass AddSlashes()
  • RCE漏洞分析
  • OSS和FastDFS的区别
  • 【如何在 Linux 和 Android 系统中杀死进程】
  • 火语言RPA流程组件介绍--获取窗口对象
  • C# 与 C++ 跨进程通信:使用 RabbitMQ 实现消息队列通信
  • Golang | Leetcode Golang题解之第547题身份数量
  • API网关之Gravitee
  • 基于ViT的无监督工业异常检测模型汇总
  • 如何在 Linux 系统中通过进程名杀掉蓝牙进程
  • Meta AI最新推出的长视频语言理解多模态模型LongVU分享