Spring 框架是一个基于 Java 的企业级开发框架,采用了大量的设计模式来实现其功能和特性。以下是 Spring 中常用的一些设计模式:

1.单例模式(Singleton Pattern):

Spring 的默认 bean 作用域就是单例模式,保证每个 bean 只有一个实例。

2.工厂模式(Factory Pattern):

Spring 提供了多种工厂模式,如 BeanFactory 和 ApplicationContext 等,通过这些工厂可以创建和管理对象的实例。

3.代理模式(Proxy Pattern):

Spring AOP 就是基于代理模式实现的,通过代理对象来对目标对象的方法进行增强。

4.观察者模式(Observer Pattern):

Spring 事件机制就是基于观察者模式实现的,通过事件源和监听器来实现对象之间的解耦。

5.适配器模式(Adapter Pattern):

Spring MVC 中的处理器适配器就是基于适配器模式实现的,将不同类型的处理器适配到统一的处理器接口上。

6.模板方法模式(Template Method Pattern):

Spring 的 JdbcTemplate 就是基于模板方法模式实现的,通过定义抽象的模板方法和具体的子类实现来实现数据访问的流程控制。

7.策略模式(Strategy Pattern):

Spring 的 BeanPostProcessor 就是基于策略模式实现的,通过在不同的时机调用不同的策略方法来实现对 bean 的后置处理。

8.装饰器模式(Decorator Pattern):

Spring 的 AOP 还可以通过装饰器模式来实现增强对象的功能,如通过动态代理和 AspectJ 实现的环绕通知就是一种装饰器模式。
综上所述,Spring 中运用了许多经典的设计模式,这些模式为 Spring 提供了良好的架构和扩展性,也为我们在实际开发中提供了更多的思路和方案。

【spring里面都用到了哪些设计模式】相关推荐

  1. JDK源码中,都有哪些NB的设计模式?

    参考外国文献:http://h5ip.cn/lPtD 作者:肥朝 | 微信公众号:肥朝(ID:feichao_java) 一.结构性模式: 1.适配器模式: 常用于将一个新接口适配旧接口 肥朝小声逼逼 ...

  2. Spring官方都推荐使用的@Transactional事务,为啥我不建议使用!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 事务管理在系统开发中是不可缺少的一部分,Spring提供了 ...

  3. 从架构演进的角度聊聊Spring Cloud都做了些什么?

    Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...

  4. Spring都用到了那些设计模式(3)

    2019独角兽企业重金招聘Python工程师标准>>> 前几节我们学习了Spring中的工厂模式.单例模式.代理模式.包装模式以及适配器模式.设计模式的运用让Spring整个框架非常 ...

  5. Spring 框架用到的 9 个设计模式汇总!

    1. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. ...

  6. Spring源码学习笔记:经典设计模式之代理模式

    1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 0.代理模式(Proxy Pattern) 指为其他对象提供一种代理,以控制对这个对象的访问.代理对象在客户端 ...

  7. 盘点 Spring Security 框架中的八大经典设计模式

    上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式. 因此松哥今天就试着整一篇,和大家来聊一聊 Spr ...

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

    控制反转(IoC)和依赖注入(DI) 工厂设计模式 单例设计模式 代理设计模式 代理模式在 AOP 中的应用 Spring AOP 和 AspectJ AOP 有什么区别? 模板方法 观察者模式 Sp ...

  9. 总结Spring框架用到的11种设计模式

    适配器模式在Spring中的应用 在Spring MVC中,定义一个Controller最常用的方式是,通过@Controller注解来标记某个类是Controller类,通过@RequesMappi ...

最新文章

  1. 2017-09-29 前端日报
  2. SAP PM 初级系列11 - 为维修工单触发采购申请
  3. 《spring揭秘》读书笔记二
  4. 敏捷个人课后练习四主题:我想要什么?
  5. java linux so
  6. 理解Windows内核模式与用户模式(新)
  7. 两个数据集,本地可以关联,正式库关联不了
  8. DFA的构造C语言,DFA的编程实现含源代码实验报告剖析
  9. 《算法导论》第二章 入门
  10. 树莓派安装smbus_树莓派安装wiringPi,BCM2835,以及python的RPI.GPIO
  11. 《C++ Primer 第5版》源码下载地址
  12. C复合结构——结构体struct
  13. CH341应用升级为CH347软硬件注意事项
  14. 程序员也需要掌握的常用Linux网络命令汇总
  15. python面向对象编程思想_面向对象编程思想及其特点
  16. 冰蝎shell_冰蝎动态二进制加密WebShell特征分析
  17. 南方人和北方人的区别?如何区分南方人和北方人?
  18. 罗技无线鼠标接收器无法配对的详细解决办法
  19. Gitee推送本地文件到仓库并且创建子文件夹(详细)
  20. (ASCII代码 )密码破译

热门文章

  1. 图片内容管家 (把文字隐藏到图片里)
  2. Linux/UNIX命令dd简介
  3. 基于php732电子杂志投稿审核网站
  4. python发红包(转载)
  5. 校园网自动登录,断线重连
  6. Spring - 如何实现IOC
  7. Oracle 语法中的 INSERT INTO
  8. 栈和队列以及线性表的区别
  9. AD仿真功能描述文档
  10. 国际空间站ISS SSTV 2018 OCT