zoukankan      html  css  js  c++  java
  • 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 就需要寻求一些能够记录被注入对象与依赖对象之间的关系。

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

    1.直接编码方式

    2.配置文件方式   

    3.元数据方式

    Guice是一种DI框架

     

     

  • 相关阅读:
    哈希表
    跳表
    哈夫曼之谜
    选择树、判定树和查找树

    将gbk字符串转换成utf-8,存储到注册表中后,再次从注册表读取转换成gbk,有问题!!!
    函数内部还是不要使用 strtok()
    没想到: System.out.println(n1 == f1 ? n1 : f1);
    在不同DPI屏幕环境下,让图标显示的尺寸保持不变,使用 LoadImage() 加载图标
    在多线程中显示模态窗口,出现异常现象
  • 原文地址:https://www.cnblogs.com/levontor/p/11040454.html
Copyright © 2011-2022 走看看