Spring.NET学习实践(2) ---修改下我们的小例子
2007-08-12 09:44
453 查看
来源:
http://blog.csdn.net/trisaeyes/archive/2006/12/27/1464727.aspx
在上一篇文章的最后,我们作了一个简单的例子,来使用Spring.NET,虽然这个例子真的是很简陋.
1 static void Main(string[] args)
2 {
3
4 StaticApplicationContext context = new StaticApplicationContext();
5 context.RegisterPrototype("HelloWorld", typeof(HelloWorld), null);
6
7 SayHi o = context.GetObject("HelloWorld") as SayHi;
8
9 System.Windows.Forms.MessageBox.Show(o.SayHello());
10 }
现在我们来看看这个例子的流程。
1.申请容器
StaticApplicationContext context = new StaticApplicationContext();
2.注册服务
context.RegisterPrototype("HelloWorld", typeof(HelloWorld), null);
3.获得服务组件
SayHi o = context.GetObject("HelloWorld") as SayHi;
4.使用组件
System.Windows.Forms.MessageBox.Show(o.SayHello());
麻雀虽小五脏俱全,或许我们以后要面对要复杂的多Spring.NET代码,但是基本上会和
上面这个例子走类似的流程。
但是这个例子也不是很完美。因为我们在第二步注册服务时,使用的是代码配置的方式,如果我们象更换服务组件时,我们不得不来修改代码,是我们无法忍受的,简直回到原始时代了(关于代码配置还是配置文件配置的问题,Spring社区和其他构架社区一样配置文件配置的声音占了绝大多数,但是平心而论代码配置还是尤其擅长的地方的,至少不想一些人说的那么让人忍受不了,甚至是一无是处)。
现在我们换个方式,使用常见的XML配置方式来修改下我们的小例子。
首先修改我们的配置文件(web.config或是App.config)
修改为以下的样式
<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroupname="spring">
<sectionname="context"type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<sectionname="objects"type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resourceuri="config://spring/objects"/>
</context>
<objectsxmlns="http://www.springframework.net">
<objectid="HelloWorld"type="TestSpringNetTestHelloWorld.HelloWorld, SpringTest" >
</object>
</objects>
</spring>
</configuration>
很简单把,<objectid="HelloWorld"type="TestSpringNetTestHelloWorld.HelloWorld, SpringTest" >
声明了一个HelloWorld的服务的组件配置
其中type是实现服务的组件
type="TestSpringNetTestHelloWorld.HelloWorld指明实现服务的组件类,
逗号后的SpringTest是组件所在的模块
代码中我们只需要修改注册方式即可。
IApplicationContext context = ContextRegistry.GetContext();
运行下,OK.
http://blog.csdn.net/trisaeyes/archive/2006/12/27/1464727.aspx
在上一篇文章的最后,我们作了一个简单的例子,来使用Spring.NET,虽然这个例子真的是很简陋.
1 static void Main(string[] args)
2 {
3
4 StaticApplicationContext context = new StaticApplicationContext();
5 context.RegisterPrototype("HelloWorld", typeof(HelloWorld), null);
6
7 SayHi o = context.GetObject("HelloWorld") as SayHi;
8
9 System.Windows.Forms.MessageBox.Show(o.SayHello());
10 }
现在我们来看看这个例子的流程。
1.申请容器
StaticApplicationContext context = new StaticApplicationContext();
2.注册服务
context.RegisterPrototype("HelloWorld", typeof(HelloWorld), null);
3.获得服务组件
SayHi o = context.GetObject("HelloWorld") as SayHi;
4.使用组件
System.Windows.Forms.MessageBox.Show(o.SayHello());
麻雀虽小五脏俱全,或许我们以后要面对要复杂的多Spring.NET代码,但是基本上会和
上面这个例子走类似的流程。
但是这个例子也不是很完美。因为我们在第二步注册服务时,使用的是代码配置的方式,如果我们象更换服务组件时,我们不得不来修改代码,是我们无法忍受的,简直回到原始时代了(关于代码配置还是配置文件配置的问题,Spring社区和其他构架社区一样配置文件配置的声音占了绝大多数,但是平心而论代码配置还是尤其擅长的地方的,至少不想一些人说的那么让人忍受不了,甚至是一无是处)。
现在我们换个方式,使用常见的XML配置方式来修改下我们的小例子。
首先修改我们的配置文件(web.config或是App.config)
修改为以下的样式
<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroupname="spring">
<sectionname="context"type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<sectionname="objects"type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<resourceuri="config://spring/objects"/>
</context>
<objectsxmlns="http://www.springframework.net">
<objectid="HelloWorld"type="TestSpringNetTestHelloWorld.HelloWorld, SpringTest" >
</object>
</objects>
</spring>
</configuration>
很简单把,<objectid="HelloWorld"type="TestSpringNetTestHelloWorld.HelloWorld, SpringTest" >
声明了一个HelloWorld的服务的组件配置
其中type是实现服务的组件
type="TestSpringNetTestHelloWorld.HelloWorld指明实现服务的组件类,
逗号后的SpringTest是组件所在的模块
代码中我们只需要修改注册方式即可。
IApplicationContext context = ContextRegistry.GetContext();
运行下,OK.
相关文章推荐
- Spring.NET学习实践(2) ---修改下我们的小例子
- Spring.NET学习实践(2) ---修改下我们的小例子
- Spring.NET学习实践(2)
- Spring.NET学习实践(1)---Spring.NET的构架
- Spring.NET学习实践(1)---Spring.NET的构架
- Spring.NET学习实践(1)---Spring.NET的构架
- 学习Spring.NET - 第一个例子
- 学习Spring.NET 例子
- Spring.NET学习实践(1)---Spring.NET的构架
- 我的职业生涯总结---班门弄斧之我们该怎样从零开始学习.NET
- 从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-7.通知)
- Spring注解原理学习(自己编写例子)-2
- java事务学习笔记(八)--分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
- Spring.Net 能为我们做点什么
- .NET Core 1.0学习(4)粗略看了一下ASP.NET Core MVC例子
- 学习Spring.Net:1.简单的应用之控制台
- Spring学习(6)---Bean定义及作用域的例子
- Spring.NET学习——控制反转(基础篇)
- 【破浪学习】asp.net简单的注册或者登陆三层架构的例子
- spring-amqp(windowx+eclipse+maven)学习小例子