摘要: 在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC)。  控制反转(Inversion of Control,英文缩写为IoC),也叫依赖注入(Dependency Injection)。我个人认为控制反转的意思是依赖对象(控制权)发生转变,由最初的类本身来管理依赖对象转变为IoC框架来管理这些对象,使得依赖脱离类本身的控制,从... 阅读全文
posted @ 2009-12-10 23:18 Tedd 阅读(846) 评论(0) 推荐(1) 编辑
摘要: 我们先来一起学习一下怎样使用Spring.NET。  一、环境下载及安装  到Spring的官方网站下载Spring.NET框架的安装文件(Spring.NET-1.3.0-RC1.exe)。目前Spring.NET最新的版本是1.3。下载并解压后就可以了。我们使用Spring.NET框架经常用到的一下几个文件:Common.Logging.dll(必要)Spring.Core.dll(必要)Sp... 阅读全文
posted @ 2009-12-10 23:16 Tedd 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 讲了这么多理论,我们来手动实现一个简易的IoC框架的,这样可以加深IoC的理论知识。  一、思路在我们使用Spring.NET框架的时候,首先需要实例化Spring.NET容器, 然后调用IoC容器IObjectFactory接口中GetObject方法获取容器中的对象。通过这一点就可以告诉我们制作IoC容器需要写一个获取XML文件内容的方法和申明一个Dictionary<string, o... 阅读全文
posted @ 2009-12-10 23:15 Tedd 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 学过了前面的课程,我们来一起学习Spring.NET的IoC容器对象的创建。  创建对象一般有3种方式:1.构造器创建,2.静态工厂创建,3.实例工厂创建  多数情况下,容器会根据对象定义中的type属性值去直接调用相应类型的某个构造器。另外,容器也可以调用工厂方法来创建对象,这时type属性的值就应该是包含工厂方法的类型(按:而不是要创建的类型,但通过该对象定义的名称获取的则是由工厂方法所创建的... 阅读全文
posted @ 2009-12-10 23:13 Tedd 阅读(408) 评论(0) 推荐(1) 编辑
摘要: 容器中对象的部署分为两种方式:singleton和非singleton(java里叫prototype)。这里的singleton指的是“单例模式”,就是说当一个对象被定义为singleton时,容器中就只会有一个共享的实例,任何时候通过id或别名请求该对象都会返回这个共享实例的引用(也就是说这个对象只会被创建一次)。当使用非singleton,或者说原型模式布署时,每次请... 阅读全文
posted @ 2009-12-10 23:12 Tedd 阅读(379) 评论(0) 推荐(1) 编辑
摘要: 谈到高级语言编程,我们就会联想到设计模式;谈到设计模式,我们就会说道怎么样解耦合。而Spring.NET的IoC容器其中的一种用途就是解耦合,其最经典的应用就是:依赖注入(Dependeny Injection)简称DI,目前DI是最优秀的解耦方式之一。下面我就来谈谈依赖注入的应用场景。  我模拟了三种不同的场景,可以一起学习使用依赖注入的重要性。  下面是应用场景的条件:人类使用工具劳动。[代码... 阅读全文
posted @ 2009-12-10 23:10 Tedd 阅读(368) 评论(0) 推荐(1) 编辑
摘要: 一、属性注入  上篇我们简单提到依赖注入的用途。回顾一下所讲内容,发现在object节点下使用了<propertyname="Tool"ref="computer"/>。而property标签正是用来属性注入的。而ref是用来标识是关联到哪个object。而name属性是指属性名。如下:<objectid="modernPerson"type="SpringNetIoC.Mode... 阅读全文
posted @ 2009-12-10 23:08 Tedd 阅读(272) 评论(0) 推荐(0) 编辑
摘要: Spring.NET还支持集合类型的注入。而且使用起来也比较方便。  一、ILIst类型  使用<list>元素作为ILIst的标签,value为集合中元素的值。也可以注入对象,甚至关联其它对象,使用 <ref/>元素表示关联的对象,object 属性为所关联对象的id或name。集合可以为空,用<null/>元素来标记。  在<list>元素中设置... 阅读全文
posted @ 2009-12-10 23:06 Tedd 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 我们在第三篇中学习里一个简易的IoC框架。今天我们接着上次的程序,实现带参数构造函数对象的实例和属性的注入 。  我们知道可以通过反射获取类的构造函数及参数(GetConstructors方法);可以获取属性和属性的类型(GetProperties方法)。通过Activator的CreateInstance(Type type, params object[] args)方法可以创建带参数构造函数... 阅读全文
posted @ 2009-12-10 23:04 Tedd 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 今晚看了几篇项目应用的博客感受很深,晚上怎么都睡不着觉。于是乎,下面的博客诞生了 ^-^。  我在想是不是要把我熟悉的Spring.NET框架与别的框架或技术结合起来。由于心血来潮,斗胆在园子里这么多大牛的面前班门弄斧了。长话短说,下面是我项目中用到的技术(图1):1.JQuery的FlexiGrid插件2.ASP.NET MVC3.NVelocity目前没有与MVC结合,只是用来简单的替换模板4... 阅读全文
posted @ 2009-12-10 23:03 Tedd 阅读(465) 评论(0) 推荐(0) 编辑