工厂方法模式:AbstractBeanFactory 。
抽象工厂模式:在 Spring 中,BeanFactory
单例模式:Spring中创建单例。
建造者模式:解析xml文件
原型模式:在创建ioc容器后,通过getBean()获取bean对象时,往里追可以发现在核心方法处spring对bean的scope属性进行了判断,配置了prototype时。
适配器模式:spring AOP中的MethodBeforeAdviceAdapter类。
装饰模式:TransactionAwareCacheDecorator 类
代理模式:spring中代理有两种,Jdk代理方式和CGLIB。
外观模式:Tomcat 中,catalina.jar 中的 RequestFacade 和 ResponseFacade 。
桥接模式:JDBC
组合模式:CompositeCacheManager,Mybatis 在处理 xml 动态 sql 中用到了。
享元模式:String常量池, Integer 的静态内部类 IntegerCache。
策略模式:Cglib2AopProxy和JdkDynamicAopProxy分别代表两种策略的实现方式。
模板方法模式:JdbcTemplate实现了一系列常用的数据访问的算法骨架。
观察者模式: ApplicationListener, ContextLoaderListener等。
迭代器模式:集合。
责任链模式:handler,filter,Intercept。
命令模式:Tomcat 中命令模式在 Connector 和 Container 组件之间有体现。
备忘录模式:spring-webflow 中的stateManageableMessageContext.createMessageMemento()
状态模式:spring-statemachine spring状态机
访问者模式:Spring 中的 BeanDefinitionVisitor 类主要用于访问 BeanDefinition。
中介者模式:Java web 开发中 MVC 模式(Model-View-Controller)就用到了中介者模式,Controller 就是 Model 和 View 的中介
解释器模式:在 Spring 中,ExpressionParser 接口内部采用的是解释器模式。