模板方法模式:例如 jdbcTemplate,通过封装固定的数据库访问比如获取 connection、获 取 statement,关闭 connection、关闭 statement 等 然后将特殊的 sql 操作交给用户自己实现。

策略模式:Spring 在初始化对象的时候,可以选择单例或者原型模式。

简单工厂:Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来 获得 bean 对象。

工厂方法模式:一般情况下,应用程序有自己的工厂对象来创建 bean.如果将应用程序自己的工 厂对象交给 Spring 管理, 那么 Spring 管理的就不是普通的 bean,而是工厂 Bean。

单例模式:保证全局只有唯一一个对象。 适配器模式:SpringAOP 的 Advice 有如下:BeforeAdvice、AfterAdvice、AfterAdvice, 而需要将这些增强转为 aop 框架所需的 对应的拦截器 MethodBeforeAdviceInterceptor、AfterReturningAdviceInterceptor、 ThrowsAdviceInterceptor。

代理模式:Spring 的 Proxy 模式在 aop 中有体现,比如 JdkDynamicAopProxy 和 Cglib2AopProxy。

装饰者模式:如 HttpServletRequestWrapper,自定义请求包装器包装请求,将字符编码转 换的工作添加到 getParameter()方法中。

观察者模式:如启动初始化 Spring 时的 ApplicationListener 监听器。