Java面试题更新 2026-08-05

请结合你阅读过 Spring 源码的经验,说明 Spring Framework 主要由哪些重要模块组成,并简述各模块的核心职责。

后端开发技术原理Spring Framework

考察说明

考查候选人对 Spring 框架整体模块划分的理解深度以及源码阅读的广度。

回答思路

  1. 【回答框架 1】Spring Framework 的核心模块按层次可划分为核心容器、AOP 与切面、数据访问、Web 等几大类。核心容器包括 spring-core、spring-beans、spring-context 等,提供 IoC 容器、Bean 生命周期管理和依赖注入等基础能力。
  2. 【回答框架 2】AOP 相关模块包括 spring-aop 和 spring-aspects,提供面向切面编程的支持,如动态代理、切面织入、事务管理等。数据访问模块包括 spring-jdbc、spring-tx、spring-orm,统一了 JDBC、事务和 ORM 框架的集成。
  3. 【回答框架 3】Web 模块包括 spring-web、spring-webmvc,用于构建基于 Servlet 的 Web 应用;后续还有 spring-webflux,支持响应式编程模型。此外,spring-messaging 和 spring-websocket 用于消息和 WebSocket 应用。
  4. 【回答框架 4】测试模块 spring-test 支持单元测试和集成测试;spring-jcl 负责日志抽象。Core 容器是最基础的模块,其他模块都依赖它。理解模块划分有助于定位问题和理解 Spring 的设计思想。
  5. 【关键点 1】核心容器模块(core、beans、context)是基础,提供 IoC 和 DI 功能。
  6. 【关键点 2】AOP 模块提供切面编程支持,事务管理依赖 AOP。
  7. 【关键点 3】数据访问模块(JDBC、TX、ORM)统一数据操作。
  8. 【关键点 4】Web 模块包括 MVC 和 WebFlux,支持不同编程模型。
  9. 【易错点 1】将 Spring Boot 误认为 Spring 的一部分,Boot 是独立生态。
  10. 【易错点 2】混淆 spring-webmvc 与 spring-web 的职责。
  11. 【易错点 3】未提及 spring-context 与 spring-core 的依赖关系。