zoukankan      html  css  js  c++  java
  • spring.net 框架分析(三)ContextRegistry.GetContext()

    我们通过ContextRegistry.GetContext()建立了一个IApplicationContext得实例,那么这个实例具体是怎么建立的了。

    我们来分析一下容器实例建立的过程:

    我们在配置文件中加入了:


      

    [xhtml] view plain copy
     
    1. <sectionGroup name="<a href="http://lib.csdn.net/base/javaee" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>spring</a>">  
    2.   <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>  
    3.  </sectionGroup>  

    配置文件明明是Spring.Context.Support.ContextHandler类,与容器有什么关系了?

      Spring.Context.Support.ContextHandler 类继承IConfigurationSectionHandler。(.net Framework 2.0以后要求继承ConfigurationSection类,IConfigurationSectionHandler类被否决。)提供了配置节点spring.context的处理。我们只需要在节点spring.context中提供容器的配置,系统就会按配置生成容器。

    在Spring.Context.Support.ContextHandler 类中我们有这样一个属性:

      protected virtual Type DefaultApplicationContextType 
            { 
                get { return typeof (XmlApplicationContext); } 
            }

    这里的默认程序容器类型为XmlApplicationContext,也就是说我们实际建立的容器类型是XmlApplicationContext。

    下面我们来看下类XmlApplicationContext.

    t

    从上图我们可以看出XmlApplicationContext类是IApplicationContext接口的一个实现,当然直接实现类是AbstractApplicationContext。

    总结:当我们调用ContextRegistry.GetContext()取得容器时,系统会按照配置文件使用XmlApplicationContext类建立一个IApplicationContext得实例。

  • 相关阅读:
    java开发异常类型汇总
    dm642在线写EPROM.txt
    [Codecademy] HTML&CSS 第一课:HTML Basic
    bram和dram差别
    Advanced Fruits HDU杭电1503【LCS的保存】
    add Admob with Cocos2d-x on iOS
    一种基于Qt的可伸缩的全异步C/S架构server实现(五) 单层无中心集群
    【SSH2框架(理论篇)】--SSH2 Vs 经典三层
    CSS BFC学习笔记
    【智能家居篇】wifi网络结构(上)
  • 原文地址:https://www.cnblogs.com/xdot/p/6052646.html
Copyright © 2011-2022 走看看