Spring Framework架构

通俗易懂!一图看懂 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 原理掌握扎实”评价!祝你面中!

文章已创建 3017

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部