1. 模版模式
在一个方法里完成一小部分逻辑,然后调用一个或多个抽象方法,这些抽象方法由子类重写,比如AbstractApplicationContext里的refresh()、getBeanFactory(),可以提高程序的扩展性。
2. 工厂模式
完成BeanDefinition的加载注册,触发依赖注入后,实例化对象,AbstractAutowiredCapableBeanFactory 具体实现了createBean()。
3. 单例模式
Spring创建Bean默认单例模式。
4. 观察者模式
事件ApplicationEvent 和 事件监听器ApplicationListener
5. 代理模式
CGLIB和JDK动态代理