我最近几天已经反复尝试阅读spring源码了,从一个简单的示例入手分析其获取bean实体的过程。明明早就知道ioc的原理了,以为读spring源码都是分分钟的事,结果发现其体系结构实在太庞大了,光beanfactory的子接口和实现类就一大堆,我刚看几句就卡住了。比如AbstractApplicationContext的refresh方法中这句
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
AbstractApplicationContext本身就是个BeanFactory,这里又创建一个ConfigurableListableBeanFactory,也是BeanFactory的一个子接口,相当于BeanFactory里又获取一个BeanFactory,这么设计我不懂啊,是不是跟装饰模式差不多?
有明白的先给讲讲这个设计思路呗。