Spring 框架中都用到了哪些设计模式

简单工厂:

  • AOP的方法调用:Spring AOP通过责任链模式实现通知(Advice)的调用,确保通知按顺序执行。

责任链模式:

  • Spring几乎所有的外接扩展:Spring框架的许多模块和外部扩展都采用模板方法模式,例如JdbcTemplate、HibernateTemplate等。

模板方法模式:

  • excludeFilters、includeFilters :Spring允许使用策略模式来定义包扫描时的过滤策略,如在**@ComponentScan** 注解中使用的excludeFiltersincludeFilters

策略模式:

  • Spring的事件监听:Spring的事件监听机制是观察者模式的应用,它允许组件监听和响应特定类型的事件,实现了松耦合的组件通信。

观察者模式:

  • AOP底层:Spring的AOP(面向切面编程)底层通过代理模式来实现切面功能,包括JDK动态代理和CGLIB代理。

代理模式:

  • BeanWrapper :Spring的BeanWrapper允许在不修改原始Bean类的情况下添加额外的功能,这是装饰器模式的实际应用。

装饰器模式:

  • SpringMVC中的HandlerAdapter :SpringMVC的HandlerAdapter允许不同类型的处理器适配到处理器接口,以实现统一的处理器调用。这是适配器模式的应用。

适配器模式:

  • Bean实例:Spring默认将Bean配置为单例,确保在容器中只有一个共享的实例,这有助于节省资源和提高性能。

单例模式:

  • FactoryBeanFactoryBean 接口允许用户自定义Bean的创建逻辑,实现了工厂方法模式。开发人员可以使用FactoryBean来创建复杂的Bean实例。

工厂方法:

  • BeanFactory :Spring的BeanFactory充当工厂,负责根据配置信息创建Bean实例。它是一种工厂模式的应用,根据指定的类名或ID创建Bean对象。
相关推荐
java1234_小锋几秒前
Python常见面试题:Python是如何进行内存管理的?
java·jvm·python
Vic10101几秒前
java的分布式协议
java·开发语言·分布式
Mr.朱鹏2 分钟前
分布式-redis主从复制架构
java·spring boot·redis·分布式·缓存·架构·java-ee
识君啊5 分钟前
Java字符串算法核心攻略
java·数据结构·算法·leetcode·字符串·
程序员夏末5 分钟前
【AI Agent基础 | 第四篇】Spring AI 集成与多模型支持
java·人工智能·spring·ai·ai agent
东离与糖宝7 分钟前
Gradle 9.4爆改Java构建:编译速度提升300%,微服务多模块一键优化
java·人工智能
浩宇软件开发8 分钟前
基于Android天气预报应用开发APP
android·java·android studio·android开发
Mr.朱鹏10 分钟前
分布式-redis哨兵模式架构
数据库·redis·分布式·spring·缓存·架构·java-ee
愿天堂没有C++10 分钟前
Pimpl 设计模式(指针指向实现)
开发语言·c++·设计模式
吾日三省Java10 分钟前
GracefulResponse:告别手动Result包装,拥抱企业级统一响应处理
java·微服务·系统架构