当前位置: 首页 > news >正文

spring中用到的设计模式

1. 单例模式(Singleton Pattern)

应用场景:Spring 默认的 Bean 作用域为单例,确保容器中每个 Bean 仅有一个实例,节省资源并提高性能。
实现方式:通过 BeanFactory 或 ApplicationContext 管理单例 Bean,使用 ConcurrentHashMap 存储单例实例。

2. 工厂模式(Factory Pattern)

简单工厂:BeanFactory 根据配置动态创建 Bean,例如通过 XML 或注解定义 Bean 的创建逻辑。
工厂方法:通过 @Bean 注解在配置类中定义工厂方法,例如自定义 FactoryBean 实现复杂对象的创建。
抽象工厂:ApplicationContext 作为高级工厂,扩展了 BeanFactory 的功能,支持国际化、事件发布等。

3. 代理模式(Proxy Pattern)

应用场景:Spring AOP 基于代理模式实现,通过 JDK 动态代理或 CGLIB 生成代理类,在目标方法前后添加日志、事务等横切逻辑。
核心实现:ProxyFactory 和 JdkDynamicAopProxy 负责生成代理对象。

4. 模板方法模式(Template Method Pattern)

应用场景:JdbcTemplate、RestTemplate 等封装通用操作流程(如数据库连接管理),将具体实现(如 SQL 执行)延迟到回调方法。
优势:减少重复代码,提升扩展性。

5. 观察者模式(Observer Pattern)

应用场景:Spring 事件机制(如 ApplicationEvent 和 ApplicationListener)实现解耦的事件发布与订阅,例如容器启动、Bean 初始化完成等事件的通知。

6. 适配器模式(Adapter Pattern)

应用场景:Spring MVC 中的 HandlerAdapter 将不同处理器(如 Controller)适配到统一的请求处理流程中。
示例:RequestMappingHandlerAdapter 处理基于注解的控制器方法。

7. 策略模式(Strategy Pattern)

应用场景:资源加载策略(如 Resource 接口的不同实现类)、事务管理策略等,允许运行时动态选择算法。
扩展性:通过 BeanPostProcessor 接口支持自定义策略扩展。

8. 装饰器模式(Decorator Pattern)

应用场景:包装对象以增强功能,例如 Spring 的事务管理包装数据源,或在 AOP 中动态添加行为。

9. 原型模式(Prototype Pattern)

应用场景:通过设置 Bean 的 scope=“prototype”,每次请求生成新实例,适用于需要状态隔离的场景。

10. 依赖注入模式(Dependency Injection)

核心机制:Spring 通过构造器注入、Setter 注入等方式解耦对象依赖关系,由容器管理 Bean 的生命周期。

其他设计模式

责任链模式:用于拦截器链(如 HandlerInterceptor)处理请求。
组合模式:CompositeCacheManager 组合多个缓存管理器。

相关文章:

  • 电商项目-秒杀系统(四)秒杀异步下单防止重复秒杀
  • 快速理清 Attention 注意力和 Encoder, Decoder 概念
  • .NET CAD 二次开发中的 Transform 与数学矩阵详解
  • 开源网站模板 html静态网页模板
  • 2021 年 6 月青少年软编等考 C 语言六级真题解析
  • mysql下载
  • 【算法day3】寻找两个正序数组的中位数
  • RK3588 安装ffmpeg6.1.2
  • 数据守护者:备份文件的重要性与自动化实践策略
  • CLIP模型使用方法
  • MapReduce技术概述**
  • java的jiraapi设置超时时间
  • Excel·VBA江西省预算一体化工资表一键处理
  • 【LeetCode 热题 100】11. 盛最多水的容器 | python 【中等】
  • Unity Shader编程】之基础纹理
  • Mac 上如何安装Mysql? 如何配置 Mysql?以及如何开启并使用MySQL
  • MySQL:CRUD(增删查改)
  • 鸿蒙Next-应用检测、安装以及企业内部商店的实现
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(19):(1)家族の呼び方(よびかた):家族人物(2)助词练习
  • FreeRTOS任务状态查询
  • 台州网站建设方案咨询/在线外链推广
  • 帮外贸供应商推广网站/优化设计七年级下册数学答案
  • 爱网站关键词查询/网络优化
  • 政府网站建设 江苏省/网络营销成功案例有哪些2022
  • 电子商务网站软件建设的核心是/如何联系百度人工客服
  • 做前端网站用什么工具/搜索引擎优化seo价位