Spring中用到了哪些设计模式?[面试:7.0]

工厂模式: Spring使用工厂模式通过BeanFactory
单例模式:
Spring中的Bean默认都是单例的
有饿汉式,懒汉式,双重锁式,静态内部类式,枚举式
代理模式: Spring AOP功能的实现,如Cglib,AspectJ
模板模式: 如Spring中的jdbcTemplate
装饰者模式: 如HttpServletRequestWrapper
观察者模式: Spring事件驱动模型采用的就是观察者模式,如:ApplicationEvent
适配器模式: Spring AOP的增强或通知(Advice)如:AdvisorAdapter,MVC中也有如:HandlerAdapter
策略模式: 环境类(Context),抽象策略类(Strategy),具体策略类(ConcreteStrategy)