spring.net 框架分析(三)ContextRegistry.GetContext()

本文详细解析了如何通过Spring配置文件中的ContextHandler设置,利用XmlApplicationContext实现IApplicationContext接口的实例化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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


  

[xhtml]  view plain  copy
 
  1. <sectionGroup name="<a href="http://lib.youkuaiyun.com/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得实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值