欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

spring.net中的IoC、DI和MVC

程序员文章站 2023-01-29 18:10:43
概述 spring.net是一个开源的业务层的框架,功能非常的强大,归结一下有3个功能:面向切面;ioc和di;提供综合型的框架支持,本片博客主要说一下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,这样我们就清楚了,为什么有了那么多的框架,并且,现在仍有很多人致力于于框架的开发,以及相应优化的工作的原因了。

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