Java面试题更新 2026-08-05

在 Spring 框架中,具体使用了哪些经典设计模式?请列举并简述典型应用场景。

技术原理

考察说明

考查候选人是否熟悉 Spring 框架中常见设计模式的实际应用,并能结合具体组件说明其作用。

回答思路

  1. 【回答框架 1】工厂模式:Spring 的 BeanFactory 和 ApplicationContext 是工厂模式的典型实现,负责创建和管理对象,将对象的创建与使用解耦。
  2. 【回答框架 2】单例模式:Spring 容器默认以单例方式管理 Bean,确保在容器内每个 Bean 只有一个实例,减少创建开销和内存占用。
  3. 【回答框架 3】代理模式:AOP 基于动态代理实现,对目标方法进行增强,常用于事务管理、日志等横切逻辑,无需修改原业务代码。
  4. 【回答框架 4】模板方法模式:JdbcTemplate、RestTemplate 等封装了固定流程,子类或回调接口提供可变逻辑,简化了资源管理和异常处理。
  5. 【回答框架 5】观察者模式:Spring 事件机制(ApplicationEvent 和 ApplicationListener)允许组件间解耦通信,通过发布事件驱动异步处理。
  6. 【关键点 1】工厂模式体现在 BeanFactory 和 ApplicationContext 的 Bean 创建。
  7. 【关键点 2】单例模式是 Spring Bean 默认作用域,注意状态安全。
  8. 【关键点 3】代理模式支持 AOP,有 JDK 动态代理和 CGLIB 两种方式。
  9. 【关键点 4】模板方法模式简化了数据库、HTTP 等操作。
  10. 【关键点 5】观察者模式通过事件监听实现解耦。
  11. 【易错点 1】误以为全部 Bean 都是单例,但可通过注解指定原型等其他作用域。
  12. 【易错点 2】忽略单例 Bean 的线程安全问题,状态可变时需特别处理。
  13. 【易错点 3】将模板方法模式与策略模式混淆,需注意区分固定骨架与算法族的替换。