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框架

     

     

  • 相关阅读:
    find指令使用手册
    IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
    Vmare虚拟机中的3种网络连接方式
    Windows10下Apache2.4配置Django
    网站配色
    js 图片轮播
    Window10下Apache2.4的安装和运行
    sqlite数据库转换为mysql数据库
    windows10 安装 mysql 5.6 教程
    win10 nginx + django +flup 配置
  • 原文地址:https://www.cnblogs.com/levontor/p/11040454.html
Copyright © 2011-2022 走看看