Spring IOC的理解

spring学习之后,对IOC有了一个理解,这里是做一下笔记,给自己加深一下印象,以便后期查看。。。。

首先,得先理解spring中的一个东西(自己的理解,希望有错误的地方可以指出来,谢谢)。

1. Spring Bean:
Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。(说白了就是理解成是一个java对象,只是这个对象是被java的IOC容器管理的,但是ioc管理了什么(通过依赖注入,装配对象,配置对象,并且管理这些对象的整个生命周期),后面对象的生命周期,创建模式我会说到)。
在这里插入图片描述
类似这样的,我们在xml中配置了一个beanFactroy,对象所在的class,这样spring容器就帮我们创建好了
Spring IOC容器是什么样子的呢,理解成一个map就可以了,key存放的就是上图中bean的id,value存放的就是该对象。
这样我们使用IOC就可以获取到容器中为我们配置好的beans

2. IOC控制反转:

以前我们创建对象的时候都是直接new出来的,这样增加了代码之间的耦合,为什么会new出来会增加代码之间的耦合呢,我们知道new出来的对象是依赖于其他的类,或者其他的jar包中的对象,我们在new的时候就有很强的依赖关系,这样就产生了高耦合,而IOC是怎么做的呢,IOC通过反射的方式创建对象,这样的方式就减低了程序之间的耦合关系。

Spring IOC的理解_第1张图片
这样之后我们就不需要new了,而是由spring为我们创建出来,我们通过注解注入进来就OK了,
自动注入会根据容器中的beans类型来注入。

3. 对象创创建的声明周期
在IOC中,如果我们不限定对象的单例多例,分为两种情况

单例的生命周期:
单例是容器创建的时候就会创建我们声明的bean,
而销毁也是容器销毁,bean也会被销毁。

多例的生命周期:
多例会在对象被调用的时候创建、
但是销毁是由java的GC回收的。

你可能感兴趣的:(Spring全家桶)