浅析SpringIOC底层原理

版权声明:本文为博主原创文章,可任意转载,如不嫌麻烦请注明出处。 https://blog.csdn.net/qq_24693837/article/details/54864518

1.Spring框架的核心作用是把对象的创建交给spring进行管理

 

2.ioc操作两部分:

(1)ioc的配置文件方式

(2)ioc的注解方式


3.ioc底层原理使用技术

(1)xml配置文件

(2)dom4j解析xml

(3)工厂设计模式

(4)反射


4.IoC Service Provider

IoC Service Provider在这里是一个抽象出来的概念,它可以指代任何将IoC场景的业务对象绑定到一起的实现方式。它可以是一段代码,也可以是一组相关的类,甚至可以是比较通用的IoC框架或者IoC容器实现。

IoC Service Provider的职责相对来说比较简单,主要有两个:业务对象的构建管理和业务对象间的依赖绑定。

1)业务对象的构建管理。在IoC场景中,业务对象无需关心所依赖的对象如何构建如何取得,但这部分工作始终需要有人来做。所以,IoC Service Provider需要将对的构建逻辑从客户端对象那里剥离出来,以免这部分逻辑污染业务对象的实现。

2)业务对象间的依赖绑定。对于IoC Service Provider来说,这个职责是最艰巨是最重要的,这是它的最终使命之所在。如果不能完成这个职责,那么,无论业务对象如何的“呼喊”,也不会得到依赖对象的任何响应(最常见的倒是会收到一个NullPointerException)。IoC Service Provider通过结合之前构建和管理的所有业象,以及各个业务对象间可以识别的依赖关系,将这些对象所依赖的对象注入绑定,而保证每个业务对象在使用的时候,可以处于就绪状态。IoC Service Provider不是人类,也就不能像酒吧服务生那样通过大脑来记忆和存储所有的相关信息。所以,它需要寻求其他方式来记录诸多对象之间的对应关系。

比如:

1.它可以通过最基本的文本文件来记录被注入对象和其依赖对象之间的对应关系;

2.它也可以通过描述性较强的XML文件格式来记录对应信息;

3.它还可以通过编写代码的方式来注册这些对应信息; 

4.甚至,如果愿意,它也可以通过语音方式来记录对象间的依赖注入关系。


5.Spring的IoC容器实现:

Spring提供了两种容器类型:BeanFactory和ApplicationContext。

对于二者的用途可以进行简单划分:BeanFactory是Spring框架的基础设施,面向Spring本身;而ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都应直接使用ApplicationContext而非底层的BeanFactory。

     

                BeanFactory类继承体系

        

                  ApplicationContext类继承体系










 

猜你喜欢

转载自blog.csdn.net/qq_24693837/article/details/54864518