主题
Spring 技术栈总览
蒸馏自
B40-资源/语雀-Java开发/Spring全家桶/(58 篇:Spring 核心/深入/源码 + SpringBoot + SpringMVC + 最佳实践)。本页是 Spring 域全局地图,续接已有的 [Spring IOC容器初始化与循环依赖](./Spring IOC容器初始化与循环依赖)、[Spring AOP与声明式事务](./Spring AOP与声明式事务)。
一句话机制
Spring 的两大核心是 IoC(控制反转:容器创建对象并注入依赖)和 AOP(面向切面:抽离横切关注点);SpringBoot 用自动装配免去手动配置,SpringMVC 用 DispatcherServlet 统一分发 Web 请求,事务靠 AOP + @Transactional 声明式管理。 四者层层叠加,构成 Java 后端的事实标准骨架。
Spring 全景分层
| 层 | 解决什么 | 核心机制 | 详情页 |
|---|---|---|---|
| IoC 容器 | 对象创建与依赖管理 | BeanDefinition、refresh、三级缓存 | [Spring IOC容器初始化与循环依赖](./Spring IOC容器初始化与循环依赖) |
| 依赖注入 | 对象间解耦 | setter/构造器/字段注入、@Autowired | 概念卡片:Spring依赖注入与IoC |
| AOP | 横切关注点复用 | 动态代理(JDK/CGLIB) | [Spring AOP与声明式事务](./Spring AOP与声明式事务) |
| 事务 | 数据一致性 | @Transactional + 传播 + 隔离 | [Spring AOP与声明式事务](./Spring AOP与声明式事务) · 概念卡片:Spring事务失效与避坑 |
| SpringBoot | 免配置快速启动 | @SpringBootApplication + 自动装配 | 概念卡片:SpringBoot自动装配原理 |
| SpringMVC | Web 请求分发 | DispatcherServlet 九大组件 | 概念卡片:SpringMVC执行流程 |
IoC 与 DI 的关系
IoC(控制反转)是思想,DI(依赖注入)是实现。 IoC 把「谁创建对象、谁管理依赖」的控制权从程序反转到容器;DI 是容器注入依赖的具体手段。
不变量:使用 Spring 后,程序无需 new 创建对象、无需主动获取依赖,只要等容器注入。改变依赖实现(如换 Axe 实现类)只改配置,调用方代码零改动——这是松耦合的本质。
SpringBoot 自动装配一句话
@SpringBootApplication 是复合注解,核心三件:@SpringBootConfiguration(=@Configuration,声明配置类)+ @ComponentScan(扫包注册组件)+ @EnableAutoConfiguration(按 classpath 条件自动装配第三方 Bean)。启动类放在 root package 下,才能让默认扫描覆盖全部。
SpringMVC 执行一句话
请求 → DispatcherServlet(前端控制器)→ HandlerMapping 找 Handler(含拦截器,封装成 HandlerExecutionChain)→ HandlerAdapter 执行 → 返回 ModelAndView → ViewResolver 解析视图 → 渲染。拦截器三回调:preHandle(正向)→ postHandle(逆向)→ afterCompletion(逆向)。
事务一句话
@Transactional 基于 AOP 动态代理实现:TransactionInterceptor 在目标方法前开事务、异常回滚、完成后提交。默认传播 REQUIRED、隔离级别用数据库默认、RuntimeException/Error 回滚而 Checked 异常不回滚。
常见误解(避坑)
- ❌ "SpringBoot 自动装配 = @ComponentScan"。→ 是两个机制:@ComponentScan 扫自己包里的 @Component,@EnableAutoConfiguration 装配的是第三方 jar(spring.factories 里的配置类),互不替代。
- ❌ "@Transactional 加在 private/同类自调用也能生效"。→ 只有 public 方法、且通过代理从外部调用才生效;同类自调用绕过代理,事务失效。
- ❌ "SpringMVC 请求一进来就找 Controller"。→ 先过 HandlerMapping 找 Handler + 拦截器,再经 HandlerAdapter 适配执行,中间还有参数绑定/类型转换/校验。
- ❌ "Spring 只有 XML 配置"。→ 现代 Spring 以注解 + Java Config 为主,XML 只是历史兼容。
关联
- 原始资料:✅【02】Spring核心机制:依赖注入 · ✅@SpringBootApplication详解 · ✅【13】SpringMVC执行流程 · ✅Spring事务详解
- 已有底子:[Spring IOC容器初始化与循环依赖](./Spring IOC容器初始化与循环依赖) · [Spring AOP与声明式事务](./Spring AOP与声明式事务)
- 概念卡:概念卡片:SpringBoot自动装配原理 · 概念卡片:SpringMVC执行流程 · 概念卡片:Spring事务失效与避坑 · 概念卡片:Spring依赖注入与IoC
- 域地图:A00-百科/Java后端/Java后端