一、下载地址:

http://www.springframework.net/download.html

二、相关程序集

Spring.Net容器定义在程序集Spring.Core.dll中,它依赖于Common.Logging.dll。该程序集位于

Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release目录下

三、创建容器

1.编程方式的容器

使用Spring.Context.Support.StaticApplicationContxt直接创建容器

public class Person{public string Name { get; set; }public override string ToString(){return "This is Person";}}

class Program
{static void Main(string[] args){//创建容器Spring.Context.Support.StaticApplicationContext context = new StaticApplicationContext();//注册Person类context.RegisterPrototype("Person", typeof(Person), null);//从容器中获取Person对象Person person = context.GetObject("Person") as Person;Console.WriteLine(person);}
}

2.使用xml方式(注意xml的输出方式)

处理xml的配置处理器:Spring.Context.Support.XmlApplicationContext

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

class Program
{static void Main(string[] args){Spring.Context.Support.XmlApplicationContext context = new XmlApplicationContext("objects.xml");Person person = context.GetObject("Person") as Person;Console.WriteLine(person); }
}

注:<object>的父节点必须是<objects>,且objects的xmlns元素是必须的

3.使用配置文件+xml文件

处理器Spring.Context.Support.ContextHandler在启动程序时候加载配置信息

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><sectionGroup name="spring"><section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section></sectionGroup></configSections><spring><context><resource uri="file://objects.xml"></resource></context></spring><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup>
</configuration>

class Program
{static void Main(string[] args){Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();Person person = context.GetObject("Person") as Person;Console.WriteLine(person);}
}

注:context节点的默认type就是 Spring.Context.Support.XmlApplicationContext,Spring.Core 。故可省去

<spring><context type="Spring.Context.Support.XmlApplicationContext,Spring.Core"><resource uri="file://objects.xml"></resource></context>
</spring>

4.使用配置文件

xml对象定义也可以放在DotNet的标准应用程序配置文件中,此时必须为<objects>节点预先注册相应的节点处理器

需要使用一个新的配置处理器:Spring.Context.Support.DefaultSectionHandler

它可以帮助我们解析spring配置信息

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><sectionGroup name="spring"><section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section><section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/></sectionGroup></configSections><spring><context><resource uri="config://spring/objects"></resource></context><objects xmlns="http://www.springframework.net"><object id="Person" type="CPrj.Person,CPrj"></object></objects></spring><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup>
</configuration>

class Program
{static void Main(string[] args){Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();Person person = context.GetObject("Person") as Person;Console.WriteLine(person);Console.ReadKey();}
}

注:spring和context节点名称不是任意的,必须是spring和context。Spring.Net本身将“spring/context”作为字符串常亮定义在AbstractApplicationContext类中以表示上下文的节点名称

5.混合使用外部配置文件和嵌入的配置

<?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="Person" type="CPrj.Person,CPrj"></object></objects></spring></configuration>

四、参考文章

http://www.cnblogs.com/haogj/archive/2011/06/10/2077540.html

转载于:https://www.cnblogs.com/kimisme/p/5205628.html

Spring.Net学习笔记(1)-容器的使用相关推荐

  1. Spring.NET学习笔记——目录(原)

    目录 前言 Spring.NET学习笔记--前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1--控制反转(基础篇) Level 200 Spring.NET学习笔 ...

  2. Spring.NET学习笔记10——方法的注入(基础篇) Level 200

    多数用户都会将容器中的大部分对象布署为singleton模式.当一个singleton对象需要和另一个singleton对象协作,或者一个非singleton对象需要和另一个非singleson对象协 ...

  3. Spring.NET学习笔记——前言

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及ASP.NET扩展等等.Sprin ...

  4. Spring Boot学习笔记-进阶(3)

    文章目录 Spring Boot学习笔记-进阶(3) 一.Spring Boot与缓存 二.Spring Boot与消息 三.Spring Boot与检索 四.Spring Boot与任务 异步任务 ...

  5. Spring Boot学习笔记-基础(2)

    Spring Boot学习笔记-基础(2) Spring Boot 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 – 使用嵌入式的Servlet容器,应用无需打成WAR包 – st ...

  6. Spring Boot学习笔记(1)

    文章目录 Spring Boot学习笔记(1) Spring Boot 整合 JSP Spring Boot HTML Thymeleaf 常用语法 Spring Boot 数据校验 Spring B ...

  7. Spring Cloud 学习笔记(2 / 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...

  8. Spring Cloud 学习笔记(2 3)

    Spring Cloud 学习笔记(1 / 3) Spring Cloud 学习笔记(3 / 3) - - - 56_Hystrix之全局服务降级DefaultProperties 57_Hystri ...

  9. Spring Cloud 学习笔记(1 / 3)

    Spring Cloud 学习笔记(2 / 3) Spring Cloud 学习笔记(3 / 3) - - - 01_前言闲聊和课程说明 02_零基础微服务架构理论入门 03_第二季Boot和Clou ...

  10. Spring框架学习笔记,超详细!!(4)

    Java小白开始学习Spring框架,一方面,跟着视频学习,并记录下学习笔记,方便以后复习回顾.另一方面,发布学习笔记来约束自己,学习路程还很遥远,继续加油坚持!!!希望能帮助到大家! 另外还有我的牛 ...

最新文章

  1. 新浪新闻改版了,是到了告别的时候了吗?
  2. 非聚集索引和聚集索引
  3. Java中多线程的性能比较
  4. NachOS简述和源文件
  5. [经验]修改SDI主窗口Title
  6. JavaScript 函数基础
  7. 君正X1000串口流控bug
  8. php fpm在哪配置,php配置php-fpm启动参数及配置详解
  9. 利用asyncio aiohttp爬取蜂鸟网美图
  10. erlang 之简单的Diction实现
  11. java基础——多态
  12. 第3周项目1-顺序表的基本运算
  13. 如何实现文字逐个出现的打字机效果
  14. 【教程】如果公司的网络屏蔽了游戏【英雄联盟】的链接请求,使用这种方法玩游戏。...
  15. 基于python实现的聊天室(客户端:一)窗口设置
  16. 谷歌浏览器翻译修复工具
  17. 智能世界2030八大展望
  18. 购买意大利蜜蜂瓷砖的憋屈经历
  19. 【leetcode慢速刷题记录】1. 两数之和
  20. “秦晋之好”的来历:秦晋之好与战略结盟

热门文章

  1. 关于 Maven 的插件maven-war-plugin
  2. Unity游戏画面品质增强,shader和贴图
  3. Unix的***追踪
  4. gateway nacos注册服务_第二篇 Spring Cloud Alibaba实战(一)Nacos服务注册与发现
  5. go遍历结构体(struct)字段对应的值,切片(slice),字典(map)
  6. Nginx源码分析 - 基础数据结构篇 - 双向链表结构 ngx_queue.c(05)
  7. jenkins内置环境变量
  8. false在python什么意思_python – `x [False]`在numpy中做什么?
  9. python逐行比较两个csv_python内两个CSV文件数据比较。。。求大神解答!!
  10. Java I/O系统之转换流