Spring.net(二)----初探IOC容器

阅读 66 收藏 0 点赞 0 评论 0

本文内容纲要:Spring.net(二)----初探IOC容器

我在上一篇关于Spring.net的文章“Spring.NET框架简介及模块说明 ”中很详细的介绍了,本文就不旧话从提。我门就直奔主题吧。

1.首先了解两个接口.
IObjectFactory接口和IApplicationContext接口:他两个称为“容器”或“IOC容器”。

Spring.net框架的核心原则是非侵入性。
IObjectFactory接口是初始化、配置及管理对象的实际容器。
IObjectFactory全限定名为Spring.Objects.Factory.IObjectFactory,IObjectFactory接口有多个实现,其中最
常用的是Spring.Objects.Factory.XML.XmlObjectFactory。

2.对象定义的XML文件
在app.config或是web.config中加入

<context type="Spring.Context.Support.XmlAppliationContext",Spring.Core"/>


注意:context的type属性是可以省略的。

3.spring和context的顺序是有限制的,在Spring.net框架里已经将“spring/context”作为字符串常量定义在了
AbstractApplicationContext类中以来表示上下文的接点名称。可通过:
IApplicationContext context=ContextRegistry.GetContext();来获取接点值,这里要注意一点。在使用他的
时候必须要使配置文件中的接点起作用,这样就得必须在.NET的配置文件节点下注册类
Spring.Context.Support.ContextHandler,它让ContextRegistry类可用来初始化应用程序上下文,它实现在FCL
的IConfigurationSectionHandler接口

3.XML对象定义可在节点注册

4.Spring.net的IOC容器的简单实例----用简单三层来实现
光说这么多没用,我门还是来点实际的,看看下面的这个简单实例:
一.先建立项目随后添加引用Spring.Core程序集。
二.引用System.Configuration----需要用到ConfigurationManager类的方法。
三.配置.NET配置文件----具体配置如下:

四.建立好项目的实体类和接口以及实现借口。 下面是实例程序的结构图:Model(实体层),Service(接口),Compontent(实现接口的业务逻辑),SimpleTest(测试) ![Image](https://duoke360.com/storage/thumbnails//_signature/202203022204144597.png) 五.首先看看实体层的定义,我相信代码大家都看得懂就不多说了,直接贴上来。 using System; using System.Collections.Generic; using System.Text;

namespace Spring.Demo.Model
{
///


/// 用户类
///

public class Users
{
///
/// 编号
///

private int _oid;
public int Oid
{
get { return _oid; }
set { _oid = value; }
}

///


/// 姓名
///

private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}

///


/// 性别
///

private string _sex;
public string Sex
{
get { return _sex; }
set { _sex = value; }
}

///


/// 年龄
///

private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
}
}

六.在看接口的定义
using System;
using System.Collections.Generic;
using System.Text;
namespace Spring.Demo.Service
{
public interface IUsers
{
///


/// 返回用户的详细信息的方法
///

///
string GetUserInfo();
}
}
七.实现接口方法的逻辑
using System;
using System.Collections.Generic;
using System.Text;
using Spring.Demo.Service;
using Spring.Demo.Model;

namespace Spring.Demo.Compontext
{
public class UsersCompontents:IUsers
{
public UsersCompontents()
{ }

#region 获取用户信息
public string GetUserInfo()
{
Users user = new Users();
user.Oid = 1;
user.Name = "Beniao";
user.Sex = "Boy";
user.Age = 25;

return string.Format("编号:{0}--->姓名:{1}--->性别:{2}--->年龄:{3}",
user.Oid,
user.Name,
user.Sex,
user.Age);
}
#endregion
}
}
八.通过Spring.net的IOC容器IApplicationContext从config文件中取得程序集信息和调用方法实现控制反转
//从config文件中取得程序集信息
IApplicationContext context = ConfigurationManager.GetSection("spring/context")
as IApplicationContext;
//调用方法
//Users为config文件里的配置节
//<object name="Users"
// type="Spring.Demo.Compontext.UsersCompontents,Spring.Demo.Compontent">
//
IUsers user = context.GetObject("Users") as IUsers;
Console.WriteLine(user.GetUserInfo());
Console.Read();
运行结果如下:
Image

关于Spring.net的IOC容器就简单介绍在这里了,我也是刚学Spring.net,文章里难免会出现错误,目前
Spring.net的人气太低了,希望对这有兴趣的朋友多多探讨,更希望这方面的高手能多指教。如文章中发现
错误希望大家留言提出,我门大家一起学习,改进。

本文示例程序下载:Spring.Demo.rar

本文内容总结:Spring.net(二)----初探IOC容器

原文链接:https://www.cnblogs.com/beniao/archive/2008/04/22/974930.html
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号