作为一个容器,当然首先要存在一个容器对象了。Spring.NET 中的容器定义在程序集 Spring.Core 中,直接添加这个程序集的引用就可以开始使用了。这个程序集位于 Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release 中。

一、编程方式的容器

在 Spring.NET 中,对于通过编程方式使用容器的环境,提供了 Spring.Context.Support.StaticApplicationContext,我们可以直接创建这个容器,并加入一些配置。
在下面的例子中,我们定义了基类 Person,然后定义了 Person 的派生类 Student,
public class Person
{public string Name { set; get; }public override string ToString(){return "This is Person.";}
}public class Student:Person
{public string School { set; get; }public override string ToString(){return "This is Student.";}
}class Program
{static void Main(string[] args){// 创建容器Spring.Context.Support.StaticApplicationContext context= new Spring.Context.Support.StaticApplicationContext();// 注册context.RegisterPrototype("Person", typeof(Student), null);// 注册一个单例类型context.RegisterSingleton("Alice", typeof(Person), null);Person person = context.GetObject("Person") as Person;Console.WriteLine(person);}
}

二、Xml 方式容器

在开发中,我们通常通过 XML 配置文件来完成配置。Spring.NET 提供了 Spring.Context.Support.XmlApplicationContext,此时,对象的配置信息写在一个 xml 的配置文件中,当然了,这个配置文件有特定的格式,这些规定以 Xml Schema 的形式保存在 Spring.NET\doc\schema 文件夹的 spring-objects-1.3.xsd 中。
对于上面的例子,我们可以编写如下的配置文件 objects.xml。
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object id="Person" type="Student"></object>
<object id="Alice" type="Person"></object>
</objects>
然后,在代码中,就可以直接使用容器了。
Spring.Context.Support.XmlApplicationContext context= new Spring.Context.Support.XmlApplicationContext("objects.xml");
Person person = context.GetObject("Person") as Person;Console.WriteLine(person);

如果你觉得这还是比较麻烦的话,还可以在程序启动的时候直接加载配置信息。

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

Spring.NET 提供了Spring.Context.Support.ContextHandler,帮助我们直接在启动程序的时候加载配置信息。
实际的配置文件通过 spring 元素中 context 元素下的 resource 指定,文件的话使用 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>
<resource uri="file://objects.xml"/>
</context>
</spring>
</configuration>

在程序中就可以直接使用了。
Spring.Context.IApplicationContext context= Spring.Context.Support.ContextRegistry.GetContext();Person person = context.GetObject("Person") as Person;Console.WriteLine(person);

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

还可以不再使用另外的 Spring 配置文件,而是将所有的配置信息都保存在应用程序配置文件中。
这需要使用一个新的配置处理器 Spring.Context.Support.DefaultSectionHandler,它可以帮助我们解析 spring 配置信息。
此时的配置文件成为如下的形式,注意,现在的 resource 中使用 config:// 表示使用配置文件中的信息。
<?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>
<resource uri="config://spring/objects"/>
</context>
<objects>
<object id="Person" type="Student"></object>
<object id="Alice" type="Person"></object>
</objects>
</spring>

</configuration>

主程序与第三种情况是一样的。

五、混合使用外部配置文件和嵌入的配置

甚至还可以混合使用外部配置文件和嵌入的配置信息。
<?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>
<resource uri="file://objects.xml"/>
<resource uri="config://spring/objects"/>
</context>
<objects>
<object id="Alice" type="Person"></object>
</objects>
</spring>

</configuration>

下面是两种常用容器的类图。

配置 Spring.NET相关推荐

  1. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  2. myeclipse中配置spring xml自己主动提示

    版权声明: https://blog.csdn.net/zdp072/article/details/24582173 这是一篇分享技巧的文章:myeclipse中配置spring xml自己主动提示 ...

  3. 配置spring整合jpa自动生成数据表

    配置spring整合jpa自动生成数据表 applicationContext.xml <?xml version="1.0" encoding="UTF-8&qu ...

  4. web.xml 通过contextConfigLocation配置spring 的方式

    部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的 classes目录下 spring的 配置文件在启动时,加载的是web-info目录下的application ...

  5. 丢掉xml使用JavaConfig配置Spring

    Spring JavaConfig 最近撸了一遍Spring action 4,发现里面讲的都不再使用xml文件来配置spring,全都采用Java代码来配置. 用Java代码配置的话,感觉要比xml ...

  6. spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

    本节主要内容: 1:通过代码演示实现零XML配置spring 2:使用重点注解理解 声明: 本文是<凯哥陪你学系列-框架学习之spring boot框架学习>中spring boot框架学 ...

  7. spring boot注释_使用Spring Boot和注释支持配置Spring JMS应用程序

    spring boot注释 1.简介 在以前的文章中,我们学习了如何使用Spring JMS配置项目. 如果查看有关使用Spring JMS进行消息传递的文章介绍 ,您会注意到它是使用XML配置的. ...

  8. 使用Spring Boot和注释支持配置Spring JMS应用程序

    1.简介 在以前的文章中,我们学习了如何使用Spring JMS配置项目. 如果查看有关使用Spring JMS进行消息传递的文章介绍 ,您会注意到它是使用XML配置的. 本文将利用Spring 4. ...

  9. spring java code配置_Spring-09-使用Java的方式配置Spring

    9. 使用Java的方式配置Spring 我们现在要完全不使用Spring的xml配置,全权使用Java来配置Spring! JavaConfig是Spring的一个子项目,在Spring4之后,他成 ...

最新文章

  1. [BZOJ4766]文艺计算姬
  2. SpringBoot日志收集-Aop方式-存进数据库一起来和我看看咋收集日志吧!!
  3. 【转】未能加载文件或程序集或它的某一个依赖项,系统找不到指定的文件
  4. 如何成为个好Java程序员
  5. Teams App如何选择用户
  6. 计算机建筑材料考试试题,建筑材料试题(建筑材料期中试题及)
  7. 你想进BAT吗?告诉你一个秘密,面试成功率能提高到99%!
  8. [No00005A]word多文档合一
  9. 好的网站收藏---长期更新---长期更新---长期更新---长期更新--
  10. Redis 彻底禁用RDB持久化
  11. 【译】2021年国外十大AI自动写作软件评测
  12. 服务器内存条和普通内存条性能,科技知识:服务器内存条和普通内存条区别
  13. 华为手机序列号前三位_华为Nova2s手机序列号前六位是TPG4C1是什么意思
  14. STM32F103C8T6有128K的Flash
  15. Java 7的新特性:文件监视器
  16. 基因功能分析——哈佛大学
  17. 基于Django框架的视频播放器设计
  18. php 心跳包检测,redis的对端心跳检测
  19. 京东cookie京东ck
  20. Omnipeek空口抓包(2):扫描无线网络

热门文章

  1. Kubernetes Deployment与Replica Set
  2. 程序员的魔法——用Masking GAN让100,000人都露出灿烂笑容
  3. 《思科UCS服务器统一计算》一导读
  4. Android WebView 与 JS 交互
  5. delphi string.split 按照任意字符串分割语句
  6. Exchange 2010 运维技巧一
  7. linux安装vsftp教程,CentOS7 vsftp 安装与配置(视频教程)
  8. SharpDevelop插件系统创建过程全面分析
  9. 前端一HTML:八:css中与文本相关的属性
  10. c:数据结构-线性表