写作初衷
最近看了很多关于Spring框架的模块划分,6个、7个模块划分的都有。感到很模糊到底怎么划分,最后查看官方文档发现官方文档划分为6个模块【如下图】。
Spring架构图
Ps:这个图来源于Spring4的Doc,我在Spring5以后的官方Doc中没有找到这个图,而且Spring5的文档的排版跟Spring4的排版有很大的区别。
🚎有在Spring5的Doc中找到这个图的可以留言告诉我🍻,谢谢!😊
模块划分目录
以上是官方文档给的模块划分的讲解,我接下来会按照6个模块进行解读。
- 核心容器 Core Container
- 数据访问与集成 Data Access/Integration
- Web组件
- 切面编程和Instrumentation
- Messaging 通信报文
- 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