IOC and DI
Spring.Net 技术简介 IOC and DI
一 简单介绍
二 创建对象,以及设置属性
创建好了项目,然后我们就要开始了
<? xml version =" 1.0 " encoding =" utf-8 " ?>
< configuration>
< configSections>
< sectionGroup name = "spring " >
<!-- 这下面有context和object在下面都有对象的标签 -->
< section name = "context " type = "Spring.Context.Support.ContextHandler, Spring.Core " />
< section name = "objects " type = "Spring.Context.Support.DefaultSectionHandler, Spring.Core " />
</ sectionGroup >
</ configSections> < spring>
<!-- Spring.Net对象容器的配置 -->
< context >
<!-- 容器的所有的对象在哪里,这里用uri说明地址 -->
< resource uri = "config://spring/objects " />
<!-- 可以使用外部xml文件 --> </ context > <!-- objects:配置的容器里面的对象 -->
< objects xmlns = "http://www.springframework.net " >
< description >An example that demonstrates simple IoC features. </ description>
<!-- name最好用类名,type第一个是类的全程加上程序集,后面一个是程序集名称 -->
< object name = "UserInfoDal " type = "SpringNetDemo.UserInfoDal, SpringNetDemo " >
<!-- 在这里是设置对象的属性,将Name的值设置成ctt -->
< property name = "Name " value = "ctt " />
</ object >
</ objects > </ spring> </ configuration>


public class UserInfoDal : IUserInfoDal
{
public string Name { get; set; } public void Show()
{
Console .WriteLine("zjh and "+Name );
}
}


class Program
{
static void Main(string [] args)
{
//IApplicationContext是Spring里面的一个超类,主要操作类
IApplicationContext ctx = ContextRegistry .GetContext();
//GetObject从配置文件中读取信息后,反射产生相应的对象,用as强转成对象的接口
IUserInfoDal userInfoDal = ctx.GetObject("UserInfoDal" ) as IUserInfoDal;
//轻松加愉快,就这样出来了
userInfoDal.Show();
Console .ReadKey();
}
}

三 创建复杂属性的设置

public class UserInfoService
{
public IUserInfoDal UserInfoDal { get ; set; } public void Show()
{
UserInfoDal.Show();
Console .WriteLine("it is service" );
}
}


<? xml version =" 1.0 " encoding =" utf-8 " ?>
< configuration>
< configSections>
< sectionGroup name = "spring " >
<!-- 这下面有context和object在下面都有对象的标签 -->
< section name = "context " type = "Spring.Context.Support.ContextHandler, Spring.Core " />
< section name = "objects " type = "Spring.Context.Support.DefaultSectionHandler, Spring.Core " />
</ sectionGroup >
</ configSections> < spring>
<!-- Spring.Net对象容器的配置 -->
< context >
<!-- 容器的所有的对象在哪里,这里用uri说明 -->
< resource uri = "config://spring/objects " />
<!-- 可以使用外部xml文件 --> </ context > <!-- objects:配置的容器里面的对象 -->
< objects xmlns = "http://www.springframework.net " >
< description >An example that demonstrates simple IoC features. </ description>
<!-- name最好用类名,type第一个是类的全程加上程序集,后面一个是程序集名称 -->
< object name = "UserInfoDal " type = "SprintNetDemo.UserInfoDal, SprintNetDemo " >
<!-- 在这里是设置对象的属性,将Name的值设置成ctt -->
< property name = "Name " value = "ctt " />
</ object >
<!-- 在这里配置UserInfoService对象 -->
< object name = "UserInfoService " type = "SprintNetDemo.UserInfoService, SprintNetDemo " >
<!-- 在这里配置UserInfoService对象的UserInfoDal属性,执行上面产生的对象 -->
< property name = "UserInfoDal " ref = "UserInfoDal " />
</ object >
</ objects > </ spring> </ configuration>


static void Main( string[] args)
{
//IApplicationContext是Spring里面的一个超类,主要操作类
IApplicationContext ctx = ContextRegistry .GetContext();
//创建出对象,主要在配置文件中对UserInfoService的UserInfoDal属性进行复制
UserInfoService userInfoService = ctx.GetObject( "UserInfoService" ) as UserInfoService;
userInfoService.Show();
Console.ReadKey();
}

it is service
四 总结
IOC and DI的更多相关文章
- 深入理解DIP、IoC、DI以及IoC容器
摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...
- 初识Spring框架实现IOC和DI(依赖注入)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...
- 对IOC和DI以及AOP的理解
为了理解Spring的IoC与DI从网上查了很多资料,作为初学者,下面的描述应该是最详细,最易理解的方式了. 首先想说说IoC(Inversion of Control,控制倒转).这是spring的 ...
- Spring4学习笔记1-HelloWorld与IOC和DI概述
1.安装环境 1.1安装eclipse,jdk 1.1安装Spring tool suite(非必要项) 2.spring HelloWorld 2.1 需要的jar包(spring官网下载:http ...
- IoC和DI的理解
1 概述 当我们想闭上眼睛想如何让我们的软件更加可用可维护时,我们总能想到一个词:松耦合.在这篇文章中,主要讲述了模块间存在的依赖关系,但这种依赖关系违背了依赖倒置原则.在这之后,我们将讨论一种解除软 ...
- Spring控制反转与依赖注入(IOC、DI)
IOC: 反转控制 Inverse Of Control DI:依赖注入 Dependency Injection 目的:完成程序的解耦合 解释:在应用系统的开发过程中,有spring负责对象的创 ...
- [原创]java WEB学习笔记97:Spring学习---Spring 中的 Bean 配置:IOC 和 DI
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解
1.概述 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模 ...
- 深入理解DIP、IoC、DI以及IoC容器(转)
深入理解DIP.IoC.DI以及IoC容器 摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.D ...
- 【转】深入理解DIP、IoC、DI以及IoC容器
原文链接:http://www.cnblogs.com/liuhaorain/p/3747470.html 前言 对于大部分小菜来说,当听到大牛们高谈DIP.IoC.DI以及IoC容器等名词时,有没有 ...
随机推荐
- EF中的transaction的使用范例
注意一点: 在EF中使用事物后,对于一个新增的model,在saveChanges后,可以得到该实体的自增ID,但在提交事物之前, 该数据并没有真正的新增到DB中,但此时可以得到model新增的自增I ...
- Handler详细说明系列(六)——View的post()详解
MainActivity例如下列: package cc.testui2; import android.os.Bundle; import android.view.View; import and ...
- C#中反射的概念及其使用(转)
提纲:1. 什么是反射2. 命名空间与装配件的关系3. 运行期得到类型信息有什么用4. 如何使用反射获取类型5. 如何根据类型来动态创建对象6. 如何获取方法以及动态调用方法7. 动态创建委托 1.什 ...
- HDU 5037 FROG (贪婪)
Problem Description Once upon a time, there is a little frog called Matt. One day, he came to a rive ...
- 为代码减负之<一>触发器(SQL)
对触发器一词早有耳闻(最早是在耿大妈的数据库视频中),当初看完视频后,对理解不深刻的东西如:触发器,存储过程,事务,日志等等没有具体的去查阅,也没有具体的去尝试,应用.所以才导致了今天的博客(把曾经丢 ...
- JavaScript语言基础知识11
JavaScript字符的比较. 在接下来的学习内容的开始,我们先来看一下alert()此功能,它是一个消息框. OK,接下来正式介绍代码: <HTML> <HEAD> < ...
- NetMQ
NetMQ发布订阅C#示例 NetMQ (ZeroMQ to .Net),ØMQ号称史上最快中间件.它对socket通信进行了封装,使得我们不需要写socket函数调用就能完成复杂的网络通信.和一般意 ...
- 判断文件是否存在,不存在创建文件&&判断文件夹是否存在,不存在创建文件夹
1.判断文件是否存在,不存在创建文件 File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if( ...
- 安装后维修指南再次双系统xp、win7、ubuntu
在本文中,主机为单个硬盘,三个步骤. 第一步: 使用liveCD要么u盘引导计算机进入ubuntu.这里最好是确保两个系统版本号之间的一致性. 菜单 System -> Administrati ...
- Mybatis包分页查询java公共类
Mybatis包分页查询java公共类 分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...