借鉴整合以下文章
Spring IOC详解及Bean生命周期详细过程,看完直接吊打面试官! - 掘金
一.IOC详解
为什么使用IOC
ioc是解耦的一种方法。
java的程序就是由若干对象组成的,当我们的项目越来越大,合作的开发者越来越多的时候,我们的类就会越来越多,类与类之间的引用就会成指数级的增长。
所以我们就需要引入 Ioc 框架,由框架来维护类的生命周期和类之间的引用,系统就会变成这样:
什么是IOC
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
最常见的方式叫做依赖注入(DI),依赖注入其实是spring控制反转的实现方式。
1.谁控制谁?:在以前,对象的创建和销毁都是由用户控制的,用了ioc之后,对象的创建和销毁就都交给容器来控制了,用户就不用管这些,只关注业务需求就好了。
2.什么是反转?:既然叫反转,肯定就有正转,正转其实就是对象去找实例,而反转就反过来了嘛,让实例来找对象;怎么找呢?当然是通过容器啦!
3.谁依赖谁?:在spring项目中,将对象理解为Bean,也可以叫bean对象,这个bean和容器之间有个依赖关系,bean对象的创建是依赖容器的,就好像孩子依赖父母一样,孩子不能自己生出自己,需要父母的合作才能出生,这里的孩子就是bean,父母就是容器;
4.谁注入谁?:通过容器注入了bean对象,而且这个过程是自动化的,也就是说容器会自动找到和bean对象匹配的类型实例注入到对象中;