Spring.NET在非Web中的应用,以及封装Spring容器。
来源:互联网 发布:淘宝网ipad下载软件 编辑:程序博客网 时间:2024/06/08 08:47
另外一篇随笔中已经有在Web中使用Spring.NET的文章了。这篇是在非Web中的应用。相对简单点。
我们引入Spring.Core,使用Spring.NET来实现工厂模式。过程如下:
a) 添加app.config应用程序配置文件。
b) 在app.config中注册spring节点,加入一下配置代码(注意,是在<configuration>与</configuration>之间插入的。):
<!-- SP1:必须在.NET配置文件的<configSections>节点中注册这个类, 注册了这个节点处理器后,配置文件中的<spring>节点才能起 作用。(configSections必须是configuration下的第一个元素 否则会编译出错。) context:容器资源列表(不能少,少了会出错) objects:容器里面的对象列表(不能少,少了会出错) --> <configSections> <sectionGroup name="spring"> <!--WebContextHandler是在Web项目中使用的--> <!--section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/--> <!--ContextHandler是在Web以外的项目中使用的--> <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/> </sectionGroup> </configSections>c) 在app.config应用程序配置文件中,加入context与objects对象的相关配置,加入的配置代码(注意,可以在上面的配置后加入下面的代码的):
<!-- SP2:配置Spring的容器,这样配置就不用在程序中显式地去创建 Spring的容器,从而降低了程序对Spring的耦合。 <context>节点的type属性是可选的,在Windows应用中,其默认值就是Spring.Context.Support.XmlApplicationContext --> <spring> <context> <!--SP3: 此处的配置文件是指包括了Spring.NET对象定义的XML文件,而非特指.config文件 --> <resource uri="config://spring/objects"/> <!--下面是引用.NET程序集内嵌资源时的URI语法: assembly://<AssemblyName>/<NameSpace>/<ResourceName> assembly://<程序集>/<命名空间>/<资源名称> SP_Manual:加入不同项目的不同xml配置信息。如: 例:<resource uri="assembly://Piggy.NET.Web/Piggy.NET.Web/WebTest.xml"/> --> <resource uri="assembly://piggyWinForm/piggyWinFormTemplet/Objects.xml"/> </context> <!-- SP4:objects节点的xmlns元素是必需的,必须根据不同的应用添加不同的命名空间 --> <objects xmlns="http://www.springframework.net"/> </spring>d)在piggyWinForm程序集中加入Objects.xml,其代码如下(该文件配置的是告知spring容器,哪个对象所使用的是什么程序集中的哪个类):
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd"> <object id="SpringTest" type="piggyWinFormTemplet.SpringTest, piggyWinForm" /></objects>配置工作已经完成了,接下来,我贴出我封装了的Spring容器的类,方便我们在日后的使用。代码如下:
using Spring.Context;using Spring.Context.Support;namespace Piggy.Common{ public class SpringTool { private static IApplicationContext m_context = null; private SpringTool() { } public static void Close() { if (m_context != null) { AbstractApplicationContext c = (m_context as AbstractApplicationContext); if (c != null) c.Dispose(); m_context = null; } } public static IApplicationContext Context { get { if (m_context == null) { lock (typeof(SpringTool)) m_context = ContextRegistry.GetContext(); } return m_context; } } }}这样,我们就能方便地在其它地方使用,使用的方式如:object myObject=SpringTool.Context.GetObject("SpringTest"),注意这里的字符串参数,SpringTest是Objects.xml中的那个object id的值。
源码下载
原创作品出自努力偷懒,转载请说明文章出处:http://blog.csdn.net/kfarvid或 http://www.cnblogs.com/kfarvid/
- Spring.NET在非Web中的应用,以及封装Spring容器。
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring在非web应用中关闭IoC容器 (registerShutdownHook)
- Spring在非web应用中优雅地关闭Spring IoC容器
- Spring在非web应用中优雅地关闭Spring IoC容器
- spring(2) spring ioc容器在Web容器中的启动
- Spring在Web中的应用
- Spring在Web容器中的启动过程
- 【Java.Spring.MVC】Spring在Web容器中的启动过程
- 在web容器中获取spring容器中的bean对象
- 【spring】IOC容器在WEB容器中的启动
- ServletContext与Web应用以及Spring容器启动
- ServletContext与Web应用以及Spring容器启动
- ServletContext与Web应用以及Spring容器启动
- Spring MVC 根应用上下文在Web容器中的启动及其销毁
- Spring.Net应用(WEB)
- Spring在Web应用中的初始化
- spring在web应用中的配置
- 用BeanUtils类实现bean的拷贝
- 和大家分享一个c编的日常支出管理系统
- 安装windows服务的步骤
- Smarty中文手册,Smarty教程,Smarty模板的入门教材
- 【转载】C#中的泛型 (From dotNet SDK 2.0 Beta1)
- Spring.NET在非Web中的应用,以及封装Spring容器。
- java Date Calendar 类 使用大全
- 编译原理之正则表达式
- Building Data Dictionary using SQL Server 2005
- 猜牌问题
- 桌面linux系统和嵌入式linux系统的不同点
- md5加密
- sun公司提供的API来创建出代理对象
- .net日期格式转换