小叙Spring.NET(Ioc与DI)的使用步骤

那今天就介绍一下我理解的Spring.net吧。介绍Spring.NET之前,先谈点其他的。我们都知道,.NET有一个基本原则“高内聚,低耦合“。关于这个概念,想必大家都知道。所谓高内聚,也就是模块内部内聚,各个模块之间“低耦合”。也就是结耦,降低耦合度。所以我们选取了传统的三层,把,数据访问层,业务逻辑层,UI层分离,降低耦合度!
       但是这还不够,我们为了让业务逻辑层与数据访问层彻底结耦。可以用面向接口编程的思想,采用抽象工厂模式。也就是建立工厂,采用映射的方式,使业务逻辑层与数据访问层结耦。这 确实解决了很多问题,但是,如果让业务逻辑层与UI层也进行结耦。我们如果仍然采用抽象工厂模式,建立工厂,信息写入配置文件,采用映射。那岂不是很麻烦??所以,我们引出了我们今天的内容,Spring.NET.
      Spring本是java的一个框架,如今,它已经完美的发展成了几个技术的框架。Spring.NET就是一个很好的例子。那么Spring.Net有什么作用呢?他有着很强大的功能,就是提到的Ioc与DI。所谓Ioc,也就是创建实例,创建对象,相当于刚刚提到的抽象工厂的作用。所谓DI,就是“依赖注入”,可以给某一属性进行赋值等。

今儿就介绍IoC(创建对象的权利由开发人员自己控制new,转到了由容器来控制)DI(在对象初始化时可以给一些属性,构造方法的参数等注入默认值,可以是复杂类型)的具体使用方法吧。Spring.NET的工作,都是在配置文件里面进行的。所以,叙述,和读起来,难免的都会费劲。
1.自然是添加程序集的引用了
这似乎是所有技术都难逃的步骤,程序集网上或者Demo里面也都可以找到,引用上即可。
2. 配置文件内,写入以下代码
<?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 xmlns="http://www.springframework.net">
            <description>An  example that demonstrates simple IoC features.</description>        </objects>
    </spring>
</configuration>
3.IoC的实现
  (Ioc)需要new的类,放到在<objects></objects>节点中的object节点里面, 其中name为类名,可以随意定义,type:前半部分为创建的类的全名,后半部分为类所在的程序集-->

<object name="UserInfoService"type="SpringNet.UserInfoService,SpringNet">

</object>
使用时使用下面代码就可以了
 IApplicationContext ctx = ContextRegistry.GetContext();
 IUserInfoService lister = (IUserInfoService)ctx.GetObject("UserInfoService"); 
 。使用时如果需要更换具体的对象,只需要在配置文件里面改动就可以了

4.(DI的实现)给这个类加一个属性,也可以加多个,就在object节点里面加<property/>节点就可以了

例如:<object name="UserInfoService" type="SpringNet.UserInfoService,SpringNet">
   <!--给这个类加一个属性,也可以加多个-->
  <!--属性名字,值:直接赋值。这就为类里面的name属性,赋了一个值-->
 <property name="name" value="志华"/>
 </object> 
如果里面有一个复杂的数据类型,比如有个person类,那么就只用链接属性注入,假如UserInfoService类有一个person类的字段。就如下面这样注入

<object name="UserInfoService" type="SpringNet.UserInfoService,SpringNet">
  <!--给这个类加一个属性,也可以加多个-->
 <!--属性名字,值:直接赋值-->
  <property name="name" value="志华"/>

<!--指向下面的object节点-->

<property name="per" ref="Myperson"/>

</object>

<!--让上面的ref属性进行指向 相当于实例化一下-->

<object name="Myperson" type="SpringNet.Person,SpringNet">

<property name="Age" value="21"/>

</object>

如果调用的话,这样就可以获得具体的实例数据,以及属性了。
 5.到现在为止就基本算结束了,如果项目过大,我们可以采取分离的机制
在<spring>节点下的<context>节点中,如下面的属性,就指向了另外一个xml文件。刚才的配置,就可以写在新的文件里面了,效果是一样的
<resource uri="file://Service.xml"/><!--引用的地址,从bin/debug文件夹下找,所以我们得注意地址 右击文件属性,把 复制到输出目录,定义为始终复制-->

时间: 2024-11-04 21:38:32

小叙Spring.NET(Ioc与DI)的使用步骤的相关文章

深入解析spring的IOC和DI

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在此之前先说一下没有</span><span style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255);">spring</span>&l

对Spring中IOC和DI的理解

前几篇讲了Spring中IOC和DI的用法,本篇应该放到三篇之前,但一直没有想到好的讲解方式,后参考https://blog.csdn.net/luoyepiaoxue2014/article/details/72426666博客,对其中涉及到的进行了简单的总结. 在学习Spring的过程中,总会涉及到两个概念---IOC和DI,即控制反转和依赖注入,而对这两个概念的理解也总是含糊不清的,下面就对自己的理解进行总结. 首先是IOC,即控制反转,需要理解的是:怎么控制?谁控制了什么?怎么反转?既然

Spring的Ioc与DI

一.前言 Spring框架的核心基于控制反转的原理. IoC是一种将组件依赖关系的创建和管理外部化的技术. 考虑一个示例,其中Foo类依赖于Bar类的实例来执行某种处理. 传统上,Foo使用new运算符创建Bar的实例,或者从某种工厂类中获取一个实例. 使用IoC方法,运行时某些外部进程会将Bar的实例(或子类)提供给Foo. 这种行为,即在运行时注入依赖项,导致IoC被Martin Fowler重命名为更具描述性的依赖项注入(DI).依赖注入是IoC的一种特殊形式,尽管您经常会发现这两个术语可

Spring 之 IOC ,DI 理论

本文是依照极客学院java<Spring之IOC>章节学习的心得.随笔记录 浅谈IOC:(Inversion of Control, 控制反转) Spring 核心容器,贯穿始终.所谓IOC,对Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系: 1. 传统开发模式:对象之间互相依赖 2. IOC开发模式:IOC容器安排对象之间的依赖(中间加入一个管理控制中介) IOC理论的背景: 图一为传统设计对象相互引用的模式,所有的对象同过相互之间的合作实现系统的逻辑,相互耦

Spring中IOC与DI的的区别

依赖注入的前提: 有IOC的环境,也就是将必须对象的创建权交给了Spring. DI 介绍 Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去. IOC与DI的的区别: IOC:  控制反转,将类的对象的创建交给Spring类管理创建. DI:    依赖注入,将类里面的属性在创建类的过程中给属性赋值. DI和IOC的关系: DI不能单独存在,DI需要在IOC的基础上来完成. 这样做得好处:做到了单一

JavaWeb_(Spring框架)Spring中IoC与DI概念入门

Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spring贯穿了表现层.业务层及持久层,而不是仅仅专注于某一层的方案.可以说Spring是企业应用开发的“一站式(full-stack)”选择.然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合. 简单来说,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架. Spri

spring的ioc,di,mvc 的简单逻辑(根据网课和百度)

为了提升自己的技术所以没事自己通过百度和找资料来学习了一下spring的思想所以就记录一下 这个是比较简单的一种,有点乱.我按照自己的理解写的有注释,但是不知道是不是都是正确,如果有错误希望批评指正谢谢. 总结: 1:首先要了解spring的整体: 主要作用就是ioc di mvc 和 aop ,所以要从这几个方面去入手. 想要指导思想就要从头开始,所以就总结了一下整个流程,如下: 一:首先要配置spring 1:配置web.xml中的DispatcherServlet 2:设定 init-pa

Spring框架IOC,DI概念理解

1.什么是框架? 框架是一种重复使用的解决方案,针对某个软件开发的问题提出的. Spring框架,它是一个大型的包含很多重复使用的某个领域的解决方案. Spring的理念:不要重复发明轮子. 2.Spring的理解? 首先,Spring是一个容器.它是装对象的.主要就是通过搜索class的路径.找出bean对象,实际就是根据反射来获取这个bean对象的: Class<?> classit=Class.forName("com.jinglin.model.Person");

对Spring的IoC和DI最生动的解释

首先想说说IoC(Inversion of Control,控制倒转).这是spring的核心,贯穿始终.所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系.这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好.qq号.电话号.ip号.iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节.传统的程序开发也是如此,在