美文网首页面试经Spring Boot设计模式
spring源码中用到的设计模式

spring源码中用到的设计模式

作者: xuyouxin1 | 来源:发表于2018-12-12 22:47 被阅读0次

一、策略模式

把算法或者说行为封装成类,然后不同的算法实现为不同的子类,达到灵活调用的效果。把算法封装在方法中,对外提供了一致的接口。 

1、bean定义读取器(BeanDefinitionReader)中,里面的资源加载器(ResourceLoader)、bean名称生成器(BeanNameGenerator),用了策略模式。

然后,ClassPathXmlApplicationContext、FileSystemXmlApplicationContext(覆盖了方法Resource getResourceByPath(String path))是DefaultResource的子孙类,表示两种加载xml文件的策略:类路径、系统路径

二、适配器模式

https://blog.csdn.net/w1033162186/article/details/50635348

DispatcherServlet

doDispatch方法中,通过HandlerAdapter的handler对象的handle方法,触发接口的方法。HandlerAdapter是适配器,子类有SimpleControllerHandlerAdapter、SimpleServletHandlerAdapter、RequestMappingHandlerAdapter等,把Controller子类对象、Servlet对象、RequestMapping修饰的方法,封装成HandlerAdapter对象,以方便统一调用。

为什么使用适配模式:可以看到处理器(宽泛的概念Controller,以及HttpRequestHandler,Servlet,等等)的类型不同,有多重实现方式,那么调用方式就不是确定的,如果需要直接调用Controller方法,需要调用的时候就得不断使用if else来进行判断是哪一种子类然后执行。这样违背了开闭原则。

三、代理模式

AOP用代理模式实现的,有JDK动态代理(需要实现接口)和CGLib代理(直接给字节码加代码)

四、单例模式

Spring中scope为singleton的bean,用到了单例模式。获取时,使用了双重判断加锁的机制。

AbstractBeanFactory的getSingleton RequestMappingHandlerAdapter

五、工厂模式

1、aop中,代理的创建用了工厂模式

六、责任链模式

相关文章

  • Spring中 用到的设计模式:

    Spring中 用到的设计模式:1)BeanFactory和ApplicationContext应用了工厂模式2)...

  • spring源码中用到的设计模式

    一、策略模式 把算法或者说行为封装成类,然后不同的算法实现为不同的子类,达到灵活调用的效果。把算法封装在方法中,对...

  • 模版方法模式

    一、模版方法模式定义和特点 在Spring源码中该设计模式被频繁引用,所以在看Spring源码时通常是绕来绕去,想...

  • Spring 应用之工厂设计模式

    Spring 中应用到了工厂设计模式,如:通过 BeanFactory 或 ApplicationContext ...

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

    Spring框架中用到了哪些设计模式 1.工厂设计模式:Spring使用工厂模式通过BeanFactory和App...

  • 《我想进大厂》之Spring夺命连环10问

    1.说说Spring 里用到了哪些设计模式? 单例模式:Spring 中的 Bean 默认情况下都是单例的。无需多...

  • Spring 面试题

    1.说说Spring 里用到了哪些设计模式? 单例模式:Spring 中的 Bean 默认情况下都是单例的。无需多...

  • Spring源码阅读

    《Spring源码解析》《设计模式就该这样学》//不太好看 不如看源码

  • 设计模式浅析----代理模式

    引子 代理模式是java中很常见的一种设计模式,诸如Spring框架中用到的AOP编程思想遵循的就是代理模式的设计...

  • 「Java面试必会」工厂模式

    提到工厂模式想必都不会陌生,因为平时用到最多的Java框架就是Spring,而Spring中用到的最常见的设计模式...

网友评论

    本文标题:spring源码中用到的设计模式

    本文链接:https://www.haomeiwen.com/subject/scpicftx.html