Spring----IoC Service Provieder

IoC Service Provider的职责

参考:书籍《Spring揭秘》

           博客 http://www.voidcn.com/article/p-wyrdqvqk-beb.html

1.业务对象的构建管理

在IoC场景中,业务对象无需关心锁依赖的对象如何构建如何取得,但这部分工作始终需要有人来做。所以,IoC Service Provider需要将对象的构建逻辑从客户端对象(这里指代某个对象或者某种服务的对象,如果对象A需要引用对象B,那么A就是B的客户端对象)那里剥离出来,以免这部分逻辑污染业务对象的实现。

比如我们被注入对象是ServiceImpl通过setter注入的方式可以直接获取到依赖对象IDao,建立依赖关系。而此时的IDao业务对象并不是由ServiceImple来构建的。IoC Service Provider 的职责之一就是依赖对象的构建管理工作。将依赖对象的构建逻辑从客户端隔离,接触了相应的耦合。

2.业务对象间的依赖绑定:

将对象所依赖的对象注入绑定,从而保证每个业务对象在使用的时候,可以处于就绪状态。

IoC Service Provider 通过结合之前的构建和管理所有的业务对象,以及各个业务对象之间可以识别的依赖关系,将这些对象所依赖的对象注入绑定,从而保证每个业务对象在使用被注入对象时候,被注入的对象处于就绪状态。

***************************************************************************************************************************************************************

那么问题来了,IoC Service Provider 到底是怎么管理对象之间的依赖关系,怎么实现的呢?

好比我们去酒吧喝酒(比作被注入对象),此时服务员在(比作Ioc), 我们想要啤酒(依赖注入对象)。但是服务员此刻是个新人,并不知道啤酒放在哪里,你若要想喝啤酒,服务员必须知道啤酒和库存的关系。对于Ioc Service Provider  来说的话,同样的需要知道自己所管理和掌握的被注入对象与依赖注入对象之前的对应关系,才能准确无误的去为被注入对象提供注入服务, 那么Ioc Service Provider 就需要寻求一些能够记录被注入对象与依赖对象之间的关系。

扫描二维码关注公众号,回复: 6660330 查看本文章

当前流行的IoC Service Provider产品使用的注册对象管理信息的主要方式有:

1.直接编码方式

2.配置文件方式   

3.元数据方式

Guice是一种DI框架

 

 

转载于:https://www.cnblogs.com/levontor/p/11040454.html

猜你喜欢

转载自blog.csdn.net/weixin_34190136/article/details/93297695
今日推荐