好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Spring.net在.NET应用程序的标准配置文件中用一个自定义节点来配置容器实例

Spring.net在.NET应用程序的标准配置文件中用一个自定义节点来配置容器实例

在 VS2010 中使用 Spring.net 开发应用程序,在新的 framework 4.0 运行时下,完全不能运行,因为 framework4.0 的代码安全模型被改变。 Spring 之前做的很多发射的工作,就不能通过 framework 4.0 的验证。具体如何解决暂时没有办法。但是 vs2010 可以提供 2.0 、 3.0 、 3.5 、 4.0 运行时,用户在创建工程的时候只需要选择 3.5 即可。因为 spring 在 3.5 中能完全跑起来。

首先去 spring.net  官网下载最新版本的 spring.net 安装包。下载完毕后进行安装,安装好后,打开安装路径,一下是我安装的路径:

我们找到 bin 文件夹下面的 net 文件夹下面的 2.0 文件夹下面的 release 文件夹,并打开,里面的一些列 dll 文件就是 spring.net 程序集。我们要进行基于 spring.net 框架开发则必须引用相应的程序集。

开发 spring.net 需要写一大堆的配置文件。为了让 vs 能够智能感应和验证,这时候可以将 doc 文件夹下面的 schema 文件夹下面的 .xsd 文件都复制到 Visual Studio  安装路径下的 Xml 文件夹下面的 Schemas 文件夹下面。复制完成后就可以智能提示了。效果如下所示:

Doc 文件夹下面还有一个 reference 文件夹,此文件夹为 spring.net 的帮助文档(有 html 、 pdf 、 chm 版本)。用户可以查询相应信息。

下面进行基于 Spring.net 框架的应用程序的开发。

首先新建一个工程取名为 Com.KimiYang.Domain, 一下是新建页面:

注意要选择 3.5 框架,默认的 4.0 中,是不支持 spring.net 的。点击确定,这样工程就建好了。

接下去我新建一个类 Animal , Animal 为动物,是人呀,狗呀,毛呀的一个抽象,因此我们定义他为一个抽象类;代码如下

 

1   public   abstract   class  Animal
 2       {
 3            private   string  _strName;
 4  
 5            public   string  StrName
 6           {
 7                get  {  return  _strName; }
 8                set  { _strName  =  value; }
 9           }
10  
11            public   abstract   string  Shout();
12  
13       }

 1   public   abstract   class  Animal
 2       {
 3            private   string  _strName;
 4  
 5            public   string  StrName
 6           {
 7                get  {  return  _strName; }
 8                set  { _strName  =  value; }
 9           }
10  
11            public   abstract   string  Shout();
12  
13       }

此动物类呢  有一个属性: StrName, 表示动物的名字。还有一个抽象方法, Shout ,表示叫这个动作。此类为抽象类,因此不能被实例化,实例化是没有意义的。子类继承了此父类,必须实现其抽象方法。

接下来新建一个一个类 Cat ,表示猫,代码如下 ;

public   class  Cat : Animal

    {

         public   override   string  Shout()

        {

             return   " 喵喵:我叫 "   +   this .StrName;

        }

    }

Cat 类继承了 Animal 类,因此拥有 Animal 类的公开属性 StrName , Cat 也实现了 Animal 类的抽象方法。

接下去我们在另外新建一个工程,在解决方案中点击右键,添加,新建项目,如下所示:

新建一个 web 工程项目,如下图所示。

接下去要使用 spring 对刚才建立的 Cat 类进行管理,因此我们要引用 spring 程序集,导入 Spring.Core.dll 、 Spring.Web.dll 、 Spring.Data.dll 这三个基本程序集,导入完之后,在 web.config 中注册 spring.net ,首先在 configSections 节点下面,代码如下:

 

< sectionGroup  name ="spring" >

                             < section  name ="context"  type ="Spring.Context.Support.WebContextHandler, Spring.Web" />

                             < section  name ="parsers"  type ="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />

                    </ sectionGroup >

在configuration 节点下面如下代码

 

< spring >

                    < parsers >

                             < parser  type ="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />

                             < parser  type ="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />

                    </ parsers >

                    < context >

                             <!-- <resource uri="/Config/Web.xml"/> -->

                    </ context >

          </ spring >

 

在 httpHandlers 下面代码如下

 

< add  verb ="*"  path ="*.aspx"  type ="Spring.Web.Support.PageHandlerFactory, Spring.Web" />

 

在 httpModules 下面代码如下:

< add  name ="Spring"  type ="Spring.Context.Support.WebSupportModule, Spring.Web" />
< add  name ="ScriptModule"  type ="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Spring.net 的配置基本上结束了,接下去是如何使用 spring.net, 首先新建一个工程。用来存放配置文件的,建立好后。新建一个文件夹,取名为 DominConfig ,在文件夹内建立一个 xml 文件,取名为 DominWeb.xml ,设置 xml 文件属性的生成操作为嵌入的资源。接下去编写 xml 文档,代码如下

 

  <? xml version="1.0" encoding="utf-8"  ?>

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

  < object  id ="myCat"  type ="Com.KimiYang.Domain.Cat,Com.KimiYang.Domain" >

     < property  name ="StrName"  value ="猫" ></ property >

  </ object >

</ objects >

以上代码创建了一个Cat 类的实例,讲工程编译,导入到 web 工程下面,然后将资源配置到 webconfig 里面,

< resource  uri ="assembly://Com.KimiYang.Config/Com.KimiYang.Config.DominConfig/Domin.xml" />

接下去在 Web 下面新建页面 WebFrom1.aspx, 在它的 cs 文件下面声明一个字段和属性代码如下:

 

public partial class WebForm1 : System.Web.UI.Page

    {

        private Animal _myCat;

        public Animal MyCat

        {

            get { return _myCat; }

            set { _myCat = value; }

        }

        protected void Page_Load(object sender, EventArgs e)

        {

            Response.Write(MyCat.Shout());

        }

    }

在web 根目录下面创建 SpringConfig 目录,在目录里面新建 web.xml 文件,代码如下

 

<? xml version="1.0" encoding="utf-8"  ?>

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

  < object  type ="~/WebForm1.aspx" >

     < property  name ="MyCat"  ref ="myCat" ></ property >

  </ object >

</ objects >

代码的意思为,给WebForm1 页面的 MyCat 属性应用对象 myCat , myCat 在 Domain.xml 里面实例化出来的对象猫。将 web.xml 也设置为操作为嵌入的资源,在 web.config context 节点下面注册。代码如下:

< resource  uri ="assembly://Web/Web.SpringConfig/web.xml" />

 

接下去运行程序。结果输出为: 喵喵,我

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Spring.net在.NET应用程序的标准配置文件中用一个自定义节点来配置容器实例的详细内容...

  阅读:38次