Spring提供了两种容器类型,一个是BeanFactory,另一个是ApplicationContext。
BeanFactory
基础类型的IOC容器,提供完整的IOC服务支持。默认采用延迟初始化策略,即只有当客户端对象需要访问容器中的受管对象时,才对该受管对象进行初始化以及依赖注入操作。
ApplicationContext是在BeanFactory基础上构建(间接继承),是比较高级的容器实现。除了拥有BeanFactory的所有支持,还提供了其他高级特性,比如事件发布,国际化信息支持等。ApplicationContext所管理的对象,在该容器启动之后,默认会全部初始化并绑定完成。
BeanFactory顾名思义,即生产Bean的工厂。可以构建业务对象以及对象间依赖关系的绑定。
将所有的业务对象交给BeanFactory后,BeanFactory会完成对象的构建和组装(对象之间依赖关系的绑定),另外BeanFactory还提供了获取Bean的入口即getBean方法。
BeanFactory的对象注册与依赖绑定方式。
1、直接编码方式
2、Properties和xml文件方式
3、注解方式