核心技术 (Core Technologies)
本节参考文档涵盖了对 Spring Framework 而言至关重要的所有技术。
其中最重要的是 Spring Framework 的控制反转 (IoC) 容器。在详细介绍 IoC 容器之后,我们将全面讲解 Spring 的面向切面编程 (AOP) 技术。Spring Framework 拥有自己的 AOP 框架,该框架在概念上易于理解,并成功解决了 Java 企业级编程中 80% 的 AOP 需求痛点。
此外,本文档还介绍了 Spring 与 AspectJ 的集成(AspectJ 是目前 Java 企业级领域功能最丰富、最成熟的 AOP 实现)。
AOT 处理可用于提前优化您的应用程序。它通常用于使用 GraalVM 部署原生镜像(Native Image)。
补充教学 —— 掌握 Spring 的“内功心法”
如果把 Spring 项目比作一座大厦,那么“核心技术”就是这座大厦的地基和主梁。理解了这一章,你才算真正推开了 Spring 的大门。
1. IoC 容器:从“主动”到“被动”
- 传统方式:你想喝咖啡,得自己买豆子、磨粉、烧水、冲泡(在代码中
new ServiceA(),new ServiceB())。 - IoC 方式:你只需要告诉管家(IoC 容器)“我想要咖啡”,管家会自动帮你准备好送到桌上。
- 核心价值:对象之间不再硬链接,代码变得极易测试和维护。
2. AOP:程序员的“横切”艺术
- 场景:你有 100 个方法,每个方法执行前都要打印日志、检查权限、开启事务。如果手动写,代码会极其臃肿。
- AOP 方案:你定义一个“切面”,告诉系统“在所有 Service 方法执行前织入这段逻辑”。
- Spring AOP vs AspectJ:
- Spring AOP:基于动态代理,上手快,满足绝大多数业务逻辑(声明式事务就是它实现的)。
- AspectJ:功能更强,支持在任何位置“切入”,但需要专门的编译器支持。
3. AOT:云原生时代的入场券
- 在 Spring 6 之前,Spring 的这种“动态性”主要依靠运行时反射。
- AOT (Ahead-of-Time):在编译阶段就把这些动态配置“写死”,生成静态代码。
- 结果:应用程序启动速度提升几个数量级,内存占用大幅降低,这是为了对接 Docker、Kubernetes 和 GraalVM 原生镜像而生的核心进化。
下一步建议: 核心技术的学习曲线相对较陡,尤其是 IoC 和 AOP。建议先从 beans (IoC) 开始,理解 Bean 的生命周期和依赖注入,这是后续一切特性的出发点。