1.控制反转
通过描述并通过第三方去产生或获取特定对象的方式
简单说就是如果你想获取某个对象,不需要自己去创建,而是由第三方创建好,自己去使用即可。
2.Spring Ioc容器
容纳开发的各种bean,如果需要使用某个bean,可以直接从容器中获取,并通过描述得到它。
其本质目的就是管理Bean.
2.1 Spring Ioc容器的设计主要基于BeanFactory和ApplicationContext这两个接口,其中Application是BeanFactory的子接口之一
2.3 Sprng Ioc容器的初始化和依赖注入
Bean的定义和初始化在Spring Ioc容器中分两大步骤:(1)定义;(2)初始化和依赖注入
(1)定义
分为3步
a. Resource定位:容器根据开发者的配置,进行资源定位,定位的内容由开发者提供;
b. BeanDefinition的载入:将Resource定位到的信息保存在BeanDefinition中;
c. BeanDefinition的注册:将BeanDefinition的信息发布到Spring Ioc容器中
注:完成以上3步,Bean就在Spring Ioc容器中被定义了,但是还没有被初始化。更没有完成依赖注入即没有注入配置的资源给Bean,所以Bean还不能被使用。Spring Bean中的配置选项-----lazy-init,含义是是否初始化Spring Bean,其值默认为false,即Spring Ioc默认会自动初始化Bean,如果将值设为true,那么只有当我们使用Spring Ioc容器的getBean方法获取它时,它才会进行Bean的初始化,完成依赖注入。
原文:https://www.cnblogs.com/Leeyoung888/p/14790900.html