spring.net中的IoC、DI和MVC

概述

spring.net是一个开源的业务层的框架,功能非常的强大,归结一下有3个功能:面向切面编程;IoC和DI;提供综合型的框架支持,本片博客主要说一下IoC和DI,和其提供的对MVC框架的支持。

IoC和DI

IoC,英文全称Inversion of Control,控制反转;DI,英文全称Dependency Injection,依赖注入。简而言之,IoC就是创建对象,DI就是创建对象的时候,进行初始化。

IoC和DI就相当于我们通常写的抽象工厂+反射,只不过比抽象工厂的功能强大,但是其思想是一样的,就是解耦。我们通过抽象工厂+反射,实现了上层和下层之间的解耦,当然,这其中有相应的中间层(接口)提供下层相应的类型保证,而spring.net提供的IoC和DI也是这样实现的,只不过,我们使用spring.net的框架时,我们不需要再自己写相应的抽象工厂了,不需要自己在进行维护这个类了,spring.net已经给我封装成了相应的dll组件,我们只需要引用相应的组件,然后进行相应的配置文件的配置就可以事项该功能。

提供MVC框架的支持

MVC框架可以说是UI层的一个框架,其Control类的功能就是接受请求,返回数据,其对于数据业务逻辑的处理是交给BLL层(业务逻辑层)进行处理的,我们通过spring.net提供的dll组件实现U层和B层的分离。

对于UI层不是MVC框架的类,我们再引入相应的dll,进行相应配置文件配置后,我们接下来的操作就是创建一个容器对象,然后给其相应的key就可以通过容器对象得到我们想要的对象,这个方式是针对于UI层没有架构的情况,而对于UI层使用了MVC架构的程序,我们是通过别的方式进行实现的,上面的概述中说了,spring.net提供了综合型框架的支持,所以,我们可以知道,spring.net也提供了相应的dll来和MVC框架进行相应的对接,这个过程的具体操作:在control类中定义相应的属性(IBLL接口类型),然后,通过配置文件的配置,实现,当然访问这个control类时,就初始化了相应的属性。

配置文件的处理

使用spring.net框架的时候,我们会在配置文件中书写大量的内容,如果这些内容仅仅在一个web.config中写的话,会非常的乱,此时,我们可以创建相应的xml文件,进行相应的配置,当然,这个需要进行相应得配置,如果我们使用这种方式的时候,我们需要注意,我们要对xml文件的属性做一些处理,将其弄到UI层,因为,我们的程序访问的配置文件是基于I层的。

总结

我们做一个程序,我们使用spring.net + M(EasyUI)VC + EF/NHibernate + T4这个框架,和一个不使用分层和任何架构的程序相比,在性能上,肯定是后者的效率高,因为代码执行的流程少,路径短,所以,非常的快,但是,为什么还是出现了上者的那种架构,并且很多人认为这种架构还非常好呢?

要想知道上面的答案,我们需要析一下,为什么出现了上面的两种情况,为什么呢?因为我们做的程序的类型不同,对于互联网系统,对于系统的要求的是执行的速度快,对于企业级业务系统(OA\ERP\管理系统等),对于系统的要求的是对于需求的变化能灵活的应对,ok,这样我们就清楚了,为什么有了那么多的框架,并且,现在仍有很多人致力于于框架的开发,以及相应优化的工作的原因了。

从上面的分析我们可以知道,对于程序来说,不是用了框架就好,不是不用框架就不好,而是要恰到好处的使用。

时间: 2024-10-15 19:18:12

spring.net中的IoC、DI和MVC的相关文章

spring中的IOC/DI的知识点

IOC(Inverse of control):控制反转;其实就是一个装对象的容器,以前我们在controller中调用service中的方法,都要先new 一个service对象,这样不符合模式设计的六大法则中的依赖倒置原则,为了处理这个问题,可以把各层创建对象的工作让spring来完成,spring创建对象都把它放在ioc中 DI:依赖注入:其实与IOC是一回事,只是从不同的角度来看待问题的 实现IOC/DI的技术有: 1.setter注入(最常用) 2.构造方法注入(使用它时,要注意空构造

Spring框架中的IOC和DI的区别

上次面试被问到IOC和DI的区别时,没怎么在意,昨天又被问到,感觉有点可惜.今晚总算抽点时间,查看了spring官方文档.发现,IoC更像是一种思想,DI是一种行为.为了降低程序的耦合度,利用spring将对象依赖的对象进行注入的过程中,发生了什么呢?发生了控制权的反转.而spring官方文档中,也是将Dependency Injection放在了IoC Container这一章的子节中. spring官方文档:http://docs.spring.io/spring/docs/3.2.13.R

第四课:通过配置文件获取对象(Spring框架中的IOC和DI的底层就是基于这样的机制)

首先在D盘创建一个文件hero.txt,内容为:com.hero.Hero(此处必须是Hero的完整路径) 接下来是Hero类 package com.hero; public class Hero { String name; int id; public Hero() { super(); // TODO Auto-generated constructor stub } public Hero(String name, int id) { super(); this.name = name

理解Spring的AOP和Ioc/DI就这么简单

一.什么叫Ioc.DIIoc:Inversion of Control -- 控制反转 DI:Dependency Injection -- 依赖注入 其实这两个概念本质上是没有区别的,那我们先来看看什么叫做Ioc? 假设这么一个场景: 在A类中调用B类的方法,那么我们就称 A依赖B,B为被依赖(对象),相信这点大家能够理解. 传统做法: (1)直接在A(方法)中new出B类对象,然后调用B类方法 -- 硬编码耦合: (2)通过简单工厂获取B类对象,然后调用B类的方法 -- 摆脱了与B的耦合,却

spring 学习 AOP和IOC

自11开始接触三大框架,至今已俞5载, 当时风光无限的ssh,现在还在被广泛使用,并有扩大之势的只有spring了 spring主要特性,是广为使用的AOP(面向切面)和IOC(控制反转) 1.其中,IOC(控制反转)也叫依赖注入,使用最是广泛 基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起. 就是通过在代码中大量使用接口,并为所有参数编写get,

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

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

用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)

用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心.依赖注入(DI)是IoC的另外一种说法,只是从不同的角度描述相同的概念.看完这两句,是不是不但没懂,反而更迷惑了,别急,往下看: IoC的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 如果我们打开机械式手表的后盖,就会看到与

理解Spring中的IoC和DI

什么是IoC和DI IoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度.其基本思想是:借助于"第三方"实现具有依赖关系的对象之间的解耦. DI(Dependence Injection 依赖注入):将实例变量传入到一个对象中去(Dependency injection means giving an object its instance variables). 控制反转是一种思想 依赖注入是一种设计模式 I

Spring IoC/DI

前言 假设项目层次划分包括logic层和dao层,logic层调用dao层完成业务逻辑,dao层一般与数据库交互.定义两个组件,TestLogic和TestDao,分别操作接口ILogic和IDao,这样程序开发时需要考虑怎样管理这两个组件. 传统方式 这种方式中,当TestLogic组件需要调用TestDao组件时,直接使用关键字new IDao testDao = new TestDao(); 这种方式简单直观,但造成了对外部组件的严重依赖,程序高度耦合,效率低下.当项目需要更换组件时需要修