Spring用了哪些设计模式?

面试里可以从几个最核心、最好举例的模式答,不要一上来铺太多。

高频答案

  1. 工厂模式

Spring 通过 BeanFactory、ApplicationContext 管理 Bean 的创建。

你在用:

getBean("userService")

本质上就是把对象创建交给容器,而不是自己 new。

  1. 单例模式

Spring 默认 Bean 是 singleton,容器里通常同一个 Bean 只创建一个实例。

  1. 代理模式

Spring AOP 用得非常典型。

比如事务、日志、权限校验,很多都是通过代理在目标方法前后增强。

常见有:

  • JDK 动态代理

  • CGLIB 代理

  1. 模板方法模式

典型如:

  • JdbcTemplate

  • RedisTemplate

  • RestTemplate

它们把固定流程封装好,具体细节由回调或调用方补充。

  1. 观察者模式

Spring 事件机制就是观察者模式。

比如:

  • ApplicationEvent

  • ApplicationListener

一个事件发布后,多个监听器可以接收处理。

  1. 适配器模式

Spring MVC 里很典型。

比如不同类型的 Controller、Handler 最终都能被统一调用,背后就有适配器思想,例

如:

  • HandlerAdapter
  1. 策略模式

Spring 里经常通过接口 + 多实现完成策略切换。

比如不同的:

  • HandlerMapping

  • HandlerAdapter

  • BeanPostProcessor

  • InstantiationStrategy

运行时按条件选择不同实现。

  1. 责任链模式

Spring MVC 的拦截器链、Spring Security 的过滤器链都很典型。

请求会按链路依次经过多个处理器。

如果面试官追问"最重要的三个"

你优先答这三个就够了:

  • 工厂模式:Bean 的创建交给 Spring 容器

  • 代理模式:AOP、事务

  • 单例模式:默认 Bean 作用域

可以直接背的面试版

Spring 中常见的设计模式有:工厂模式、单例模式、代理模式、模板方法模式、观察者模

式、适配器模式、策略模式和责任链模式。最典型的是工厂模式用于 Bean 创建,代理模式

用于 AOP 和事务,单例模式体现在 Bean 默认 singleton。

相关推荐
云和数据.ChenGuang4 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
摇滚侠5 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
silvamux_7 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
步行cgn8 小时前
StringHttpMessageConverter 详解:Spring MVC 中字符串读写的默认转换器
java·spring·mvc
摇滚侠8 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
小蒜学长8 小时前
基于Spring Boot+Vue3的在线医疗咨询系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·在线问诊·在线医疗咨询系统
Deng桑8 小时前
SpringAI写第一个Agent-把工单循环跑起来
java·agent·工具调用·spring ai
步行cgn10 小时前
@ResponseBody 详解:Spring MVC 中把返回值直接写入响应体
java·spring·mvc
jason成都11 小时前
RTKLIB 的 Java 移植版来了:rtklib-java v3.3.0 功能全景
java·gnss·rtklib·rtklib_java
LazyHunter911 小时前
JDK 28:Java 下一步方向解析与新特性展望
java·jdk