对于容器这块,实现过程大致分三步,定位,载入和注册。
Beanfactory是容器类的根接口,定义了容器的最根本的职责,即返回一个bean。最终使用的是一个继承了根接口的借口的实现类,这个继承关系比较复杂,总之就是在容器借口的基础上不断扩展新的功能。最后的实现类还会实现其他的接口,因为它既是容器的角色又具有比方说从xml文件读取bean的定义功能,那么还需要实现其他的接口功能。关于继承树这里就不做记录了。
那么如何实现ioc的功能呢?大致是这样的:
定位:这个过程最终会返回一个resoure类来代表bean定义的位置之类的信息;
加载:然后又一个reader类来根据这个位置信息读取bean的定义到内存;
注册:最后用一个map存储所有的bean名字和定义的映射关系;
这就是ioc的大致过程,这个过程只是载入bean的定义信息,并没有实例化,当第一次使用的时候才实例化,当然这个特性可以更改。