通俗易懂!一图看懂 Spring Framework 整体架构(2025最新版)
Spring Framework 现在已经是 6.x 版本了,整个框架像一个七层汉堡,层层递进,你只需要记住这 7 个模块就够了(面试画架构图必备)!
Spring Framework 6.x 核心架构图(从下到上)
第7层:Web 层(选装)
├─ Spring Web MVC → 传统 MVC(Controller + Model + View)
├─ Spring WebFlux → 响应式编程(支持高并发,Netty 也能跑)
第6层:业务通用能力(几乎都用)
├─ Spring Transaction → 声明式事务 @Transactional
├─ Spring Cache → @Cacheable 一行搞定缓存
├─ Spring Scheduling → @Scheduled 定时任务
├─ Spring TaskExecution → 异步任务 @Async
第5层:Spring Boot(其实不属于 Framework,但99%都靠它启动)
第4层:AOP + Instrumentation(横切面魔法)
├─ Spring AOP → 面向切面编程
├─ Spring Aspects → 集成 AspectJ
├─ Spring Instrument → 运行时织入(很少用)
第3层:核心容器 Core Container(心脏!必须掌握)
├─ Beans → BeanFactory、BeanDefinition
├─ Core → BeanUtils、TypeConverter 等工具类
├─ Context → ApplicationContext(真正常用的容器)
├─ SpEL → Spring 表达式语言 #{...} 和 ${...}
第2层:数据访问层 Data Access(对接外部世界)
├─ Spring JDBC → JdbcTemplate
├─ Spring ORM → 整合 MyBatis、Hibernate、JPA
├─ Spring Tx → 事务抽象(上面第6层用它)
├─ Spring Data JPA / Redis / Mongo → 一行代码实现 CRUD
第1层:Test(底层但最常用)
└─ Spring Test → @SpringBootTest、MockMvc、TestRestTemplate
面试最爱问的“核心四层”口诀版(画图必背)
最底层:Core + Beans → 提供 IoC 和 DI 能力(地基)
第2层 :Context → ApplicationContext = Beans + 生活服务(水电物业)
第3层 :AOP + Aspects → 给你织入日志、事务、缓存等横切逻辑
第4层 :Web(MVC / WebFlux) + JDBC/ORM/Messaging → 对外提供服务
实际项目中真正天天打交道的模块(99%场景)
| 模块 | 每天都在用吗? | 备注 |
|---|---|---|
| spring-beans + context | 是 | 核心容器,启动就加载 |
| spring-aop | 是 | @Transactional、日志、权限都靠它 |
| spring-tx | 是 | 事务管理 |
| spring-webmvc / webflux | 是 | 写接口 @RestController |
| spring-jdbc / jpa | 是 | 连数据库 |
| spring-expression (SpEL) | 偶尔 | @Value(“#{…}”)、权限表达式 |
| spring-test | 是 | 写单元测试和集成测试 |
| spring-instrument | 基本不用 | 热部署、字节码增强才用 |
一句话总结 Spring Framework 架构
Spring 就是一个超级强大的 IoC 容器(ApplicationContext)
- 插满了各种插件(AOP、事务、缓存、Web、JDBC、消息队列……)
- 再通过 Spring Boot 实现“开箱即用”
记住这张图 + 这句话,面试官让你画 Spring 架构图,你直接 30 秒画完,旁边小伙伴还在想 BeanFactory 和 ApplicationContext 有什么区别……
经典面试题收尾:
问:BeanFactory 和 ApplicationContext 区别?
答:BeanFactory 是基础 IoC 容器,懒加载;ApplicationContext 是高级容器,启动就加载单例 + 提供事件发布、国际化、资源加载等高级功能,实际项目全用 ApplicationContext!
画完架构图 + 甩出这句,面试官直接给“Spring 原理掌握扎实”评价!祝你面中!