Spring 是一个分层架构的轻量级框架,其模块划分为多个独立 Jar 包,方便按需引入。核心模块如下:
1. Core Container(核心容器)
-
spring-core:框架基础,提供 IoC、依赖注入、资源访问等核心工具类。
-
spring-beans:管理 Bean 的定义、创建及解析(如 BeanFactory)。
-
spring-context:在 core 和 beans 基础上扩展,提供 ApplicationContext、事件传播、国际化等。
-
spring-context-support:支持第三方库集成(如 EhCache、Quartz、Mail 等)。
-
spring-expression:Spring Expression Language (SpEL),支持运行时查询和操作对象图。
2. AOP 与 Aspects
-
spring-aop:基于 JDK 动态代理或 CGLIB 实现面向切面编程。
-
spring-aspects:与 AspectJ 集成,提供更强大的 AOP 功能。
3. Data Access / Integration(数据访问与集成)
-
spring-jdbc:简化 JDBC 操作,包含 JdbcTemplate、事务管理等。
-
spring-tx:声明式事务管理,提供事务抽象及实现。
-
spring-orm:集成 Hibernate、JPA、MyBatis 等 ORM 框架。
-
spring-oxm:对象/XML 映射,支持 JAXB、XStream 等。
-
spring-jms:JMS(消息服务)支持,简化消息发送接收。
4. Web 模块
-
spring-web:提供基础的 Web 特性,如 Multipart 上传、ServletContext 监听器等。
-
spring-webmvc:基于 MVC 模式的 Web 层实现(Spring MVC)。
-
spring-webflux:响应式 Web 框架(非阻塞,基于 Reactor)。
-
spring-websocket:WebSocket 支持,实现全双工通信。
5. Test 模块
- spring-test:提供单元测试和集成测试支持(Mock 对象、TestContext 框架等)。
6. Instrumentation 与 Messaging(可选)
-
spring-instrument:用于类加载器级别的代理支持(如 JPA 字节码增强)。
-
spring-messaging:基于消息的编程模型(如 WebSocket 的子协议 STOMP)。
模块依赖图(简化)
bash
spring-core ← spring-beans ← spring-context → spring-webmvc
↑ ↑ ↑
└───────────┴───────────────┘
spring-aop → spring-tx → spring-orm
快速选择建议
-
基础 IoC :
spring-context(自动依赖 spring-core、spring-beans) -
AOP :
spring-aop+spring-aspects -
数据库操作 :
spring-jdbc+spring-tx -
Web 开发 :
spring-webmvc(包含 web 模块)
实际使用时推荐通过构建工具(Maven/Gradle)引入 Spring Boot Starter 或按依赖关系导入所需模块。