# Spring教程 - 15 Spring架构图
Spring教程告一段落了,下面再介绍一下 Spring 的架构图,总整体了解一下 Spring Framework 包含了哪些模块,以及各个模块提供的功能。
Spring 从架构上主要分为以下几个模块:
# 1 Core Container(核心容器)
Spring 最基础的部分,提供框架的核心功能:
模块 | 功能说明 |
---|---|
Core | 提供框架的基本功能,包括 IoC(控制反转)和依赖注入(DI)机制的支持。 |
Beans | 管理 bean 的定义、创建、生命周期等核心机制。 |
Context | 基于 BeanFactory,提供更高级的 ApplicationContext,用于国际化、事件传播、资源加载等。 |
SpEL | Spring Expression Language:表达式语言,用于配置文件或代码中动态计算值(比如 @Value("#{bean.value * 2}") )。 |
# 2 AOP(面向切面编程)与 Aspect(切面)
用于实现横切关注点(如日志、事务等):
模块 | 功能说明 |
---|---|
AOP | 提供 AOP 的 API 和实现机制(基于代理),使你可以将日志、事务等功能从业务逻辑中剥离。 |
Aspect | 支持通过注解(如 @Aspect )实现面向切面编程,主要基于 AspectJ。 |
# 3 Data Access / Integration(数据访问与集成)
负责数据访问和系统集成:
模块 | 功能说明 |
---|---|
JDBC | 封装原始 JDBC,简化数据库操作,提供 JdbcTemplate。 |
ORM | 支持与 ORM 框架(如 Hibernate, JPA, MyBatis)集成。 |
Transactions | 提供声明式和编程式事务管理。 |
JMS | Java 消息服务集成,支持异步消息处理。 |
Spring Data | 简化数据库访问,自动实现 Repository 接口,支持 JPA、MongoDB、Redis 等多种存储。 |
# 4 Web Layer(Web 层)
构建 Web 应用相关模块:
模块 | 功能说明 |
---|---|
Servlet | 最底层的支持,用于构建基于 Servlet 的应用。 |
Portlet | 针对 Portal(门户)环境的支持(较旧,使用较少)。 |
Structs | Spring 早期支持 Struts 1/2 的集成模块。现在很少用。 |
Spring MVC | 基于 Servlet 的 Web 框架,支持 RESTful、表单等。 |
Spring WebFlux | 响应式 Web 框架,基于 Reactor,用于构建异步非阻塞应用,适用于微服务。 |
# 5 Miscellaneous Layer(杂项/扩展层)
附加的功能模块,这个不算是 Spring Framework 中的,是属于 Spring 全家桶项目中的其他项目。
模块 | 功能说明 |
---|---|
Spring Security | 提供认证和授权机制,支持 OAuth2、JWT 等。 |
Spring Integration | 提供与外部系统(文件、邮件、消息等)的集成,适合构建消息驱动架构。 |
Spring Batch | 支持批处理任务,如大数据量导入导出等,具备容错、事务控制等特性。 |
Spring Cloud | 提供构建分布式微服务架构的工具,如配置中心、服务注册与发现、断路器等。 |
# 6 Test(测试)
用于支持单元测试与集成测试:
模块 | 功能说明 |
---|---|
Test | 提供对 JUnit、TestNG 的集成,支持模拟环境、依赖注入测试、上下文管理等。 |
完结!
← 14-国际化