Spring-IOC容器的设计主要基于BeanFactory和ApplicationContext两个接口。
BeanFactory的源码:
它的子接口及关键实现类:
我们常用的接口是ApplicationContext接口,而ClasspathXmlApplicationContext这个类时最常用的子类。
spring容器的关键要点:
1,我们可以通过以下代码来初始化spring容器:
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("spring-context.xml");
2,Spring-IOC容器对Bean的管理分为两步,分别为定义和初始化及依赖注入
2.1定义:
首先,根据开发者提供的配置(XML或注解),进行资源(Resource)定位
其次,将资源(Resource)定位到的信息保存到Bean定义中(BeanDefinition)
最后,将BeanDefinition的信息注册到Spring-IOC容器中。
注意:以上只是完成了Bean的定义,但没有完成初始化工作。
2.2 初始化
Spring-IOC容器默认会在定义后自动完成初始化,除非把lazy-init设置为true,那么需要直到执行get时,才会完成Bean的初始化。不过一般来说,我建议采用默认false