Spring框架模块结构图解析

7,966 阅读3分钟
来源于Spring官网
来源于Spring官网

写作初衷

最近看了很多关于Spring框架的模块划分,6个、7个模块划分的都有。感到很模糊到底怎么划分,最后查看官方文档发现官方文档划分为6个模块【如下图】。


截图于Spring官网
截图于Spring官网

Spring架构图

来源于Spring官网
来源于Spring官网

Ps:这个图来源于Spring4的Doc,我在Spring5以后的官方Doc中没有找到这个图,而且Spring5的文档的排版跟Spring4的排版有很大的区别。

🚎有在Spring5的Doc中找到这个图的可以留言告诉我🍻,谢谢!😊

模块划分目录

截图于Spring官网
截图于Spring官网

以上是官方文档给的模块划分的讲解,我接下来会按照6个模块进行解读。


  1. 核心容器 Core Container

  1. 数据访问与集成 Data Access/Integration

  1. Web组件

  1. 切面编程和Instrumentation

  1. Messaging 通信报文

  1. Test 测试

4. 模块解读

4.1 核心容器 Core Container

由spring-core, spring-beans, spring-context, spring-context-support, spring-context-indexer和 spring-expression组成。

各个模块的介绍

模块名称 简介
spring-core 依赖注入IOC与DI的最基本实现。
spring-beans Bean工厂与Bean的装配。
spring-context 定义基础的Spring的Context上下文即IOC容器。
spring-context-support 对Spring IOC容器的扩展支持,以及IOC子容器。
spring-context-indexer Spring的类管理组件和Classpath扫描。
spring-expression Spring表达式语言。

4.2 数据访问与集成 Data Access/Integration

由spring-jdbc, spring-tx, spring-orm, spring-oxm和 spring-jms组成。

各个模块的介绍

模块名称 简介
spring-jdbc Spring 提供的JDBC抽象框架的主要实现模块,
用于简化Spring JDBC操作。
spring-tx Spring JDBC事务控制实现模块。
spring-orm 主要集成 Hibernate, Java Persistence API (JPA)
和 Java Data Objects (JDO)。
spring-oxm 将Java对象映射成XML数据,或者将XML数据映射成Java对象。
spring-jms Java Messaging Service能够发送和接收信息。

4.3 Web组件

由spring-web, spring-webmvc, spring-websocket, 和 spring-webflux组成。

各个模块的介绍

模块名称 简介
spring-web 提供了最基础Web支持,主要建立于核心容器之上,
通过Servlet或者Listeners来 初始化IOC容器。
spring-webmvc 实现了Spring MVC(model-view-Controller)的Web应用。
提供了最基础Web支持,主要建立于核心容器之上,
通过Servlet或者Listeners来初始化IOC容器。
spring-websocket 主要是与Web前端的全双工通讯的协议。
spring-webflux 一个新的非堵塞函数式 Reactive Web 框架,
可以用来建立异步的,非阻塞,事件驱动的服务。

4.4 切面编程和Instrumentation

由spring-aop, spring-aspects,spring-instrument组成。

各个模块的介绍

模块名称 简介
spring-aop 面向切面编程的应用模块,整合Asm,CGLIb、JDKProxy。
spring-aspects 集成AspectJ,AOP应用框架。
spring-instrument 提供类检测支持和类加载器实现,以在某些应用程序服务器中使用。

4.5 Messaging 通信报文

由spring-messaging组成。

各个模块的介绍

模块名称 简介
spring-messaging 从Spring4开始新加入的一个模块,主要职责是为Spring 框架集成一些基础的报 文传送应用。

4.6 Test 测试

由spring-test组成。

各个模块的介绍

模块名称 简介
spring-test 主要为测试提供支持的。

5. 官网地址

Spring官网地址:
https://spring.io/
Spring文档地址:
https://spring.io/projects/spring-framework#learn