1.工厂模式,在各类BeanFactory以及ApplicationContext建立中都用到了;java
2.模版模式,在各类BeanFactory以及ApplicationContext实现中也都用到了;spring
3.代理模式,spring的Proxy模式在aop中有体现,好比JdkDynamicAopProxy和Cglib2AopProxy;编程
4.策略模式,第一个地方,加载资源文件的方式,使用了不一样的方法,好比:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的借口Resource;第二个地方就是在Aop的实现中,采用了两种不一样的方式,JDK动态代理和CGLIB代理;代理
5.单例模式,这个好比在建立bean的时候,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是由于spring管理的是是任意的java对象。Spring下默认的bean均为singleton,能够经过singleton=“true|false” 来指定。server
6.适配器,在Spring的Aop中,使用的Advice(通知)来加强被代理类的功能。Spring实现这一AOP功能的原理就使用代理模式(一、JDK动态代理。二、CGLib字节码生成技术代理。)对类进行方法级别的切面加强,即,生成被代理类的代理类, 并在代理类的方法前,设置拦截器,经过执行拦截器重的内容加强了代理方法的功能,实现的面向切面编程。对象
7.观察者模式,spring中Observer模式经常使用的地方是listener的实现。如ApplicationListener。资源
8.策略模式,spring中在实例化对象的时候用到Strategy模式,在SimpleInstantiationStrategy中有体现。 io