导航

学习Spring.NET - 第一个例子

Posted on 2006-12-20 18:32  懒得想  阅读(3350)  评论(9编辑  收藏  举报
准备工作

现在手头还没有Spring.NET的朋友,先让我们来到这里下载一份(出于功能考虑推荐使用1.1 Preview 3版的)

如同使用其他第三方工具一样,依据.NET版本引用好Spring.Core.dll程序集,然后在配置文件中加入这么一段

step 1:
<configSections>
    
<sectionGroup name="spring">
      
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
      
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />                
     
</sectionGroup>
  
</configSections>

<spring>

   
<context>
       
<resource uri="config://spring/objects"/>  
    
</context>

<objects xmlns="http://www.springframework.net">

</objects>
</spring>

OK,第一步工作做好.

不知道,各位在外漂泊的单身汉是不是有跟我一样的苦恼: 快餐吃来吃去,晚上经常不知道吃啥好,得,我就拿这个做DEMO吧.

先定义一个接口咯

step2:
public interface 晚上吃啥
{
   
void 吃饭();
}

口味比较重,一般比较喜欢[吃辣椒炒肉褒仔饭] 和 [吃水煮鱼]

step3:
public class 吃辣椒炒肉煲仔饭 : 晚上吃啥
{
    
public void 吃饭()
   

     Console.WriteLine(
"吃辣椒炒肉煲仔饭咯");
   }

}


public class 吃水煮鱼 : 晚上吃啥
{
   
public void 吃饭()
   

     Console.WriteLine(
"吃水煮鱼咯");
   }

}



写好了,我也决定了:水煮鱼
在config文件的<objects></objects>之间加上一句

step 4:
<objects xmlns="http://www.springframework.net">

<object id="晚餐" type="SpringDemo_1.吃水煮鱼,SpringDemo_1" />

</objects>

美食当前,具体怎么享用呢? 看这里

step 5:
[STAThread]
        
static void Main(string[] args)
        
{
            Spring.Context.IApplicationContext ctx 
= 
                Spring.Context.Support.ContextRegistry.GetContext();

            晚上吃啥 temp 
= ctx["晚餐"as 晚上吃啥;

            temp.吃饭();
        }


运行一下, 看到结果了吧    hoho~~

--------------------------------------------------------------------------
现在让我们回过过头来看看,具体每一步都做了什么

step 1:
<configSections></configSections> 配置节,定义了<spring>配置组
<context><resource uri="{0}" /></context>  
Spring.NET里默认提供了三种资源描述方式:
1)  <resource uri="config://spring/objects" />
     表示在config配置文件的<spring><objects>配置节内部定义了<object />
2) <resource uri="~/yourAppContext.xml" />
      表示在程序的根目录下的yourAppContext.xml文件里定义了<object />
3)<resource uri="assembly://assemblyName/namespace/yourAppContext.xml" />
      表示yourAppContext.xml设为了嵌入式资源,并在其中定义了<object />

step 2:

自定义的行为规范

step 3:

行为规范的具体实现

step 4 :

通过Spring.NET的IoC容器来配置由哪个符合行为规范的对象来执行行为

step 5:

执行行为,具体由谁执行,调用者(main()方法)不知情。


-------------------------------------------------------------------------------

环境: .net 1.1 , Spring.NET 1.1 Preview 3 源码: 这里