配置Spring.Net框架开发环境

一、下载DLL文件

去Spring的官方网站下载并解压,然后直接添加dll文件的引用就可以了。在上一篇文章中,已经介绍过Spring.Net框架中需要使用到的dll文件。这些程序集文件位于Spring.NET-1.3.1\Spring.NET\bin\net\4.0\debug或Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release中。

二、编程方式的容器

在Spring.Net中,对于通过编程方式使用容器的环境,提供了Spring.Context.Support.StaticApplicationContext,我们可以直接创建这个容器,并加入一些配置。在下面的例子中,我们定义了一个接口 IAnimal,然后定义了两个类Dog和Cat,分别实现IAnimal接口:

IAnimal接口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    /// <summary>
    /// 动物接口
    /// </summary>
    public interface IAnimal
    {
        /// <summary>
        /// 吃的方法
        /// </summary>
        void Eat();
    }
}

Dog类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    /// <summary>
    /// 定义Dog类实现IAnimal接口
    /// </summary>
    public class Dog:IAnimal
    {
        /// <summary>
        /// 实现吃的方法
        /// </summary>
        public void Eat()
        {
            Console.WriteLine("狗在吃饭");
        }
    }
}

Cat类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    /// <summary>
    /// 定义Cat类实现IAnimal接口
    /// </summary>
    public class Cat:IAnimal
    {
        /// <summary>
        /// 实现吃的方法
        /// </summary>
        public void Eat()
        {
            Console.WriteLine("猫在吃饭!");
        }
    }
}

主程序中调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建容器
            Spring.Context.Support.StaticApplicationContext context = new Spring.Context.Support.StaticApplicationContext();
            // 注册狗类
            context.RegisterPrototype("IAnimal", typeof(Dog), null);
            IAnimal animal = context.GetObject("IAnimal") as IAnimal;
            animal.Eat();
            Console.ReadKey();
        }
    }
}

结果:

如果想调用Cat类的Eat()方法,只需要修改注册的代码即可:

// 注册Cat类
context.RegisterPrototype("IAnimal", typeof(Cat), null);

三、XML方式容器

在开发中,我们通常通过XML配置文件来完成配置。Spring.Net提供了Spring.Context.Support.XmlApplicationContext,此时,对象的配置信息写在一个XML的配置文件中,这个XML的配置文件有特定的格式,这些规定以XML Schema的形式保存在Spring.NET-1.3.1\Spring.NET\doc\schema文件夹的spring-objects-1.3.xsd中。

对于上面的例子,我们可以编写如下的配置文件ObjectSchema.xml:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
    <object id="bll" type="SpringDemo.Dog,SpringDemo"></object>
</objects>

然后在代码中就可以直接使用容器了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 直接使用容器:路径使用的相对路径
            Spring.Context.Support.XmlApplicationContext context = new Spring.Context.Support.XmlApplicationContext("ObjectSchema.xml");
            IAnimal animal = context.GetObject("bll") as IAnimal;
            animal.Eat();
            Console.ReadKey();
        }
    }
}

如果想使用Cat类,直接修改ObjectSchema.xml文件就可以,把type修改为:type="SpringDemo.Cat,SpringDemo"。

注意:

上面的代码中加载XML文件使用的是相对路径,要修改XML的属性,把复制到输出目录改成“始终复制”,否则加载XML文件的时候会提示找不到文件的错误。或者使用XML文件的绝对路径。

四、通过应用程序配置文件来自动加载Spring.Net配置

Spring.Net提供了Spring.Context.Support.ContextHandler帮助我们直接在启动程序的时候加载配置信息。实际的配置文件通过spring节点中context节点下的resource节点的uri属性的值指定,文件的话使用file://协议描述,还可以使用其他的协议。例如嵌入在程序集中的配置文件可以使用assembly://,直接写在配置文件中则为config://。

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="spring">
      <!--定义上下文切面-->
      <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/>
    </sectionGroup>
  </configSections>
  <spring>
    <context>
       <!--使用ObjectSchema.xml文件里面的配置信息-->
      <resource uri="file://ObjectSchema.xml"/>
    </context>
  </spring>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
    </startup>
</configuration>

程序中直接使用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    class Program
    {

        static void Main(string[] args)
        {

            Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();
            IAnimal animal = context.GetObject("bll") as IAnimal;
            animal.Eat();
            Console.ReadKey();
        }
    }
}

如果想使用其他实现类,直接修改ObjectSchema.xml文件即可。

五、将所有的配置信息都保存在应用程序配置文件中

还可以不再使用另外的Spring配置文件(即ObjectSchema.xml),而是将所有的配置信息都保存在应用程序配置文件中。
这需要使用一个新的配置处理器Spring.Context.Support.DefaultSectionHandler,它可以帮助我们解析spring配置信息。
此时的配置文件改成如下的形式,注意:现在的resource中使用config://表示使用配置文件中的信息。

在基于XML的工厂中,这些对象定义表现为一个或多个<object>子节点,它们的父节点必须是<objects>(按:objects节点的xmlns元素是必需的,必须根据不同的应用添加不同的命名空间,以便有IDE的智能提示。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <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>
       <!--使用ObjectSchema.xml文件里面的配置信息-->
      <resource uri="config://spring/objects"/>
    </context>
    <objects>
      <object id="bll" type="SpringDemo.Cat,SpringDemo" />
    </objects>
  </spring>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
    </startup>
</configuration>

主程序中调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SpringDemo
{
    class Program
    {
        static void Main(string[] args)
        {

            Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();
            IAnimal animal = context.GetObject("bll") as IAnimal;
            animal.Eat();
            Console.ReadKey();
        }
    }
}

示例代码下载

到此这篇关于配置Spring.Net框架开发环境的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Spring.Net框架简介

    一.Spring.Net简介 Spring.NET为建立企业级应用提供了一套轻量级的解决方案.通过Spring.NET,我们可以用统一且透明的方式来配置应用程序.Spring.NET的重点是为中间层提供声明式事务管理,以及一个功能齐全的ASP.NET扩展框架.Spring.NET是非侵入式的,代码对框架本身不会产生任何依赖.Spring.Core库是框架的基础,提供依赖注入功能.Spring.NET中大多数类库依赖或扩展了Spring.Core的功能.IObjectFactory接口提供了一个简

  • MVC使用Spring.Net应用IOC(依赖倒置)学习笔记3

    到现在,我们已经基本搭建起了项目的框架,但是项目中还存在一个问题,就是尽管层与层之间使用了接口进行隔离,但实例化接口的时候,还是引入了接口实现类的依赖,如下面的代码: private IUserService _userService; private IUserService UserService { get { return _userService ?? (_userService = new UserService()); } set { _userService = value; }

  • Spring.Net在MVC中实现注入的原理解析

    前言 本文将介绍Spring.Net(不仅仅是Spring.Net,其实所有的IoC容器要向控制器中进行注入,原理都是差不多的)在MVC控制器中依赖注入的实现原理,本文并没有关于在MVC使用Spring怎么配置,怎么使用,怎么实现. 引言放在前面,只是为了避免浪费你的时间. 望你能静心片刻,认真阅读. 情景 public class HomeController : Controller { //这是一个很神奇的注入 private IBLL.IUserInfoService UserInfoS

  • Spring.Net IOC依赖注入原理流程解析

    一.什么是IOC.(Inversion of Control) IOC,即控制反转.不是什么技术,而是一种思想.在传统开发中,我们需要某个对象时,就手动去new一个依赖的对象.而IOC意味着将对象的控制权交给容器,而不在是直接在对象的内部控制.如何理解IOC呢?理解好IOC的关键是要明确'谁控制了谁,控制了什么?为何是反转?(有反转既有正转),哪些反面反转了.' 谁控制了谁?控制了什么?:传统程序设计,我们直接在对象内部通过new来创建对象,是程序主动去创建对象.而在ioc中,是通过一个容器去创

  • 使用Spring.Net框架实现多数据库

    一.建立一个空白的解决方案,名称为“SpringDotNot” 二.新建一个类库项目:IBLL 在IBLL类库里面有一个名称为IDatabaseService的接口,接口里面有两个方法:GetDataTableBySQL()和GetDbTyoe(). 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; us

  • Spring.Net控制反转IoC入门使用

    Spring.Net包括控制反转(IoC) 和面向切面(AOP),这篇文章主要说下IoC方面的入门. 一.首先建立一个MVC项目名称叫SpringDemo,然后用NuGet下载spring(我用的是Spring.Net NHibernate 4 support) 二.类设计,在Models文件夹下面建立类,主要IUserInfo,UserInfo,Order 三个类代码如下: public interface IUserInfo { string ShowMeg(); } public clas

  • 配置Spring.Net框架开发环境

    一.下载DLL文件 去Spring的官方网站下载并解压,然后直接添加dll文件的引用就可以了.在上一篇文章中,已经介绍过Spring.Net框架中需要使用到的dll文件.这些程序集文件位于Spring.NET-1.3.1\Spring.NET\bin\net\4.0\debug或Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release中. 二.编程方式的容器 在Spring.Net中,对于通过编程方式使用容器的环境,提供了Spring.Context.Sup

  • 详解如何配置CLion作为Qt5开发环境的方法

    使用Qt进行程序开发时QtCreator总是不二之选.作为老牌IDE在提供了强大的功能同时也对Qt的支持做了许多优化.如果没有特别的原因你应该使用它. 然而一个顺手的工具将会极大得提升生产效率,而如果你之前使用别的工具进行开发,那么就要斟酌一下学习使用QtCreator的成本了. 所以我将介绍配置CLion(另一个强大的c++ IDE)作为Qt5的开发环境,在利用现有工具链的同时避免了安装另一个大型软件. 准备工作 CLion的安装和激活超出了本文的讨论范围,我们假设你已经安装好了CLion.如

  • Spring学习之开发环境搭建的详细步骤

    最近搞定了项目,工作终于松了下来,顺便有时间学习Spring框架,记录于此,不足之处,希望大家不吝赐教 Spring的介绍 Spring是一个轻量级的Java框架,由于Spring基本提供了全套的开发服务,所以Spring基本上可以应用在Java开发中的很多方面,从本周开始学习Spring框架,顺便将自己的学习笔记整理出来,以巩固自己的学习,增进自己的表达能力,加深对Spring的了解 Spring体系结构 Spring的体系结构可以从官方文档中得知,具体如下所示: Spring体系结构 从上面

  • 深度定制Python的Flask框架开发环境的一些技巧总结

    Flask 环境配置 你的应用程序可能需要大量的软件包才能正常的工作.如果都不需要 Flask 包的话,你有可能读错了教程.当应用程序运行的时候,你的应用程序的 环境 基本上是所有一切事情的根基.我们是幸运的,因为有许多方式使得我们能够轻松地管理我们的环境. 使用 virtualenv 管理你的环境 virtualenv是用于在所谓 虚拟环境 中隔离你的应用程序的一个工具.一个虚拟环境是包含了你的应用依赖的软件的一个目录.一个虚拟环境也能够改变你的环境变量以维持你的开发环境包含的环境变量.不用下

  • 详解SpringMVC和MyBatis框架开发环境搭建和简单实用

    1.下载SpringMVC框架架包,下载地址: 点击下载 点击打开地址如图所示,点击下载即可 然后把相关的jar复制到lib下导入 2.MyBatis(3.4.2)下载 点击下载 MyBatis中文文档地址 点击查看 下载解压之后把jar复制到lib下导入,大概是这样子的 3.jdbc连接库还没有下载...这个是5.1.41版本的... 点击下载 解压之后这样子... 4.fastjson 阿里巴巴的json解析库 点击下载 版本是1.2.24 这个是托管到了github上面的,地址是:点击进入

  • Linux下从零开始安装配置Nginx服务器+PHP开发环境

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理.负载平衡.其拥有匹配Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新. 因此我打算用其替代Apache应用于Linux服务器上.但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞.那么我们必须使用FastCGI方式来执行PHP程序. 下面是我成功地配置Ngi

  • win7 64位系统 配置php最新版开发环境(php+Apache+mysql)

    一 :准备阶段 1:php php-5.5.13下载链接:http://windows.php.net/downloads/releases/php-5.5.13-Win32-VC11-x64.zip 推荐 Thread Safe(线程安全) V11 x64,也就是64bit的. 现在PHP官网上下载PHP安装包都有VC11或VC9的字样,这是什么含义,我们应该下载哪种安装包更好呢? 其实PHP官网给出了答案: VC9 and VC11 More recent versions of PHP a

  • linux中用shell快速安装配置Go语言的开发环境

    介绍 go1.5+版本提供编译好的安装包,我们只需要解压到相应的目录,并添加一些环境变量的配置即可. Go语言的安装步骤 下载安装包go1.7.linux-amd64.tar.gz 解压文件到指定目录: tar -zxf go1.7.linux-amd64.tar.gz 设置环境变量:GOROOT, GOPATH, PATH 既然我们可以列出这些步骤,那么便可以将整个过程自动化. 下面是安装脚本 #!/bin/bash #Upgrade go version to 1.7 #wget https

  • win7下安装配置node.js+express开发环境

    1.安装 node.js. 进入官网的下载地址:http://www.nodejs.org/download/ . 选择Windows Installer或者选择Windows Installer (.msi) 32-bit,下载安装包. 下载完成后,双击安装. 2.安装 Express. 通过nmp包管理器进行安装,安装分为: 全局安装:自动安装到"C:\Users\[当前用户]\AppData\Roaming\npm"下,并且自动将路径添加到环境变量"Path"

  • Windows下Ruby on Rails开发环境安装配置图文教程

    本文详细介绍如何在Windows配置Ruby on Rails 开发环境,希望对ROR初学者能有帮助. 一.下载并安装Ruby Windows下安装Ruby最好选择 RubyInstaller(一键安装包). 下载地址: http://rubyforge.org/frs/?group_id=167 . 我们这里下载目前较新的rubyinstaller-1.9.3-p0.exe 一键安装包.这个安装包除了包含ruby本身,还有许多有用的扩展(比如gems)和 帮助文档. 双击安装,安装过程出现如下

随机推荐