每日一题:Spring 框架中都用到了哪些设计模式❓

Spring 框架中使用了许多设计模式,以下列举一些比较重要的:

  1. 单例模式🔥:Spring 的 Bean 默认是单例模式,通过 Spring 容器管理 Bean 的生命周期,保证每个 Bean 只被创建一次,并在整个应用程序中重用。扩展阅读:Bean 的生命周期
  2. 工厂模式🔥:Spring 使用工厂模式通过 BeanFactory 和 ApplicationContext 创建并管理 Bean 对象。扩展阅读:Spring 的三级缓存
  3. 代理模式🔥:Spring AOP 基于动态代理技术,使用代理模式实现切面编程,提供了对 AOP 编程的支持。
  4. 观察者模式🔥:Spring 中的事件机制基于观察者模式,通过 ApplicationEventPublisher 发布事件,由 ApplicationListener 监听事件,实现了对象间的松耦合。
  5. 模板方法模式🔥:Spring 中的 JdbcTemplate 使用了模板方法模式,将一些固定的流程封装在父类中,子类只需实现一些抽象方法即可。
  6. 策略模式🔥:Spring 中的 HandlerInterceptor 和 HandlerExecutionChain 使用了策略模式,允许开发者自定义处理器拦截器,按照一定顺序执行。
  7. 责任链模式🔥:Spring 中的过滤器和拦截器使用了责任链模式,多个过滤器和拦截器按照一定顺序执行,每个过滤器和拦截器可以拦截请求或者响应并做出相应的处理。

总之,Spring 框架中充分利用了许多设计模式,提供了良好的扩展性和灵活性,降低了代码的耦合度,提高了代码的可维护性。

相关推荐
面试鸭5 小时前
我说我们做 Agent 从来不怕死循环,面试官调出兜底日志:“第 47 次强制终止,是你半夜爬起来按停的?”
后端·面试·求职
jinyishu_5 小时前
C++ 多态完全指南:从基础语法到底层原理
开发语言·c++·程序人生·面试
风起洛阳@不良使5 小时前
springIOC创建对象的方式--spring容器中的注入
java·spring
Kel7 小时前
Node.js 单线程高并发:从内核中断到 JS 回调的完整技术栈
设计模式·架构·node.js
程序员清风9 小时前
公司要裁员之前,都会有哪些信号?
java·后端·面试
Flittly9 小时前
【AgentScope Java新手村系列】(20)文字转语音TTS
java·spring boot·spring
兰令水9 小时前
hot100【acm版】【2026.7.19打卡-java版本】
java·数据结构·算法·leetcode·面试
帅次10 小时前
Android 高级工程师面试:Flutter 渲染与性能 近1年高频追问 20 题
android·flutter·面试·渲染·性能
重生之我是Java开发战士10 小时前
【Java EE】Spring IoC 与 DI
java·spring·java-ee
ruleslol11 小时前
Spring11-校验框架:@Valid VS @Validated
spring