1.引入dll

Common.Logging.dll
Spring.Core.dll
Spring.Web.dll
Spring.Web.Extensions.dll
Spring.Web.Mvc4.dll

2.将案例中的Config文件夹拷到本项目中。

把examples>Spring>Spring.Mvc4QuickStart>Spring.Mvc4QuickStart>Config文件夹复制到项目中

3.修改config文件夹中的相关配置

打开config文件夹中的controllers.xml文件可以看到文件中的就是上前一篇文章中说的objects

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net">

  <object type="Spring.Mvc4QuickStart.Controllers.HomeController, Spring.Mvc4QuickStart" singleton="false" >
<property name="Message" value="Welcome to ASP.NET MVC4 powered by Spring.NET!" />
</object> <object type="Spring.Mvc4QuickStart.Controllers.SuffixController, Spring.Mvc4QuickStart" singleton="false" >
<property name="Suffix" value="_Spring.NET_was_Here!" />
</object> <object type="Spring.Mvc4QuickStart.Controllers.OdataController, Spring.Mvc4QuickStart" singleton="false" /> <!--intentionally do NOT register the AccountController or the ValuesController with the container; demonstrates that the underlying
default controller factory will properly (attempt to!) resolve all controllers not registered with Spring.NET
using its default controller resolution behavoir-->
<!--<object type="Spring.Mvc4QuickStart.Controllers.AccountController, Spring.Mvc4QuickStart" singleton="false" />-->
<!--<object type="Spring.Mvc4QuickStart.Controllers.ValuesController, Spring.Mvc4QuickStart" singleton="false" />--></objects>

<object>节点中放的是类的实例,控制器也是一个类,<property>中放的是类的属性,控制器中怎么来属性呢?

本来控制器中调用BLL中的类时是:

IBLL.IOA_UserInfoService userInfoService = new BLL.OA_UserInfoService();

改写成:

IBLL.IOA_UserInfoService userInfoService{get;set;}

这样就可以把userInfoService变成属性。

其中OA_UserInfoService也是一个类,<object>中就变成:

<!-- type="命名空间全名,程序集名-->
<object type="BZIndexOA.WebUI.Controllers.UserInfoController,BZIndexOA.WebUI" singleton="false" >
<property name="userInfoService" ref="OA_UserInfoService" />
</object> <object name="OA_UserInfoService" type="BZIndexOA.BLL.OA_UserInfoService,BZIndexOA.BLL" singleton="false" >
</object>

4.修改web.config中的配置信息

在<configuration>节点下的<configSections>中加上

<sectionGroup name="spring"><!-- Spring.Net配置-->
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc4"/>
</sectionGroup>

然后在<configuration>节点中加上

<spring><!-- Spring.Net配置-->
<context>
<resource uri="file://~/Config/controllers.xml"/>
</context>
</spring>
<!-- Spring.Net配置结束-->

配置信息如下:

现在以经算是完成了spring.Net在MVC中的配置了

 //IBLL.IOA_UserInfoService userInfoService = new BLL.OA_UserInfoService();
IBLL.IOA_UserInfoService userInfoService{get;set;}

上面代码可以代替注释部分且正常运行了。

5.可以将Config/controllers.xml文件中的配置信息分离(把控制器的配置和业务类的配置分离)

在Config文件夹中新建一个services.xml文件,添加内容:

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net">
<!-- type="命名空间全名,程序集名-->
<object name="OA_UserInfoService" type="BZIndexOA.BLL.OA_UserInfoService,BZIndexOA.BLL" singleton="false" >
</object></objects>

然后把controllers.xml文件中的 <object name="OA_UserInfoService" type="BZIndexOA.BLL.OA_UserInfoService,BZIndexOA.BLL" singleton="false" >删除。

然后在web.config的context节点中加上刚才的配置文件,变成:

<context>
<resource uri="file://~/Config/controllers.xml"/>
<resource uri="file://~/Config/services.xml"/>
</context>

这时controllers.xml中的是控制器的配置,services中是业务类中的配置。

6.修改Global.asax文件

把 public class MvcApplication : System.Web.HttpApplication

改成: public class MvcApplication :SpringMvcApplication

配置完成,运行程序查看效果。

spring.Net之Ioc在MVC中的使用的更多相关文章

  1. Spring.Net是怎么在MVC中实现注入的(原理)

    本文将介绍Spring.Net(不仅仅是Spring.Net,其实所有的IoC容器要向控制器中进行注入,原理都是差不多的)在MVC控制器中依赖注入的实现原理,本文并没有关于在MVC使用Spring怎么 ...

  2. IOC 在Mvc中的使用

    IOC 在Mvc中的使用 IOC,是控制反转(Inversion of Control)的英文简写, 控制反转一般分为两种类型,依赖注入(Dependency Injection)和依赖查找(Depe ...

  3. 自己动手写Spring框架--IOC、MVC

    对于一名Java开发人员,我相信没有人不知道 Spring 框架,而且也能够轻松就说出 Spring 的特性-- IOC.MVC.AOP.ORM(batis). 下面我想简单介绍一下我写的轻量级的 S ...

  4. IOC运用到MVC中

    IOC可以摒弃掉类中类的紧耦合,让设计和重用更简单,将IOC加入到MVC中的实现非常简单,那么有哪几种方法?它们的实现又是什么原理呢? IOC在MVC中的注入,主要是在获取Controller对象中实 ...

  5. IOC 容器在 ASP.NET MVC 中的应用

    IOC 容器在 ASP.NET MVC 中的应用 IOC:Inversion Of Control 翻译为控制反转,我们在面向对象软件开发过程中,一个应用程序它的底层结构可能由N种不同的构件来相互协作 ...

  6. ContextLoaderListener和Spring MVC中的DispatcherServlet学习

    DispatcherServlet介绍 DispatcherServlet是Spring前端控制器的实现,提供Spring Web MVC的集中访问点,并且负责职责的分派,与Spring IoC容器无 ...

  7. Spring mvc中DispatcherServlet详解

    简介 DispatcherServlet是前端控制器设计模式的实现,提供SpringWebMVC的集中访问点,而且负责职责的分派,而且与spring IOC容器无缝集成,从而可以获得Spring的优势 ...

  8. 在Asp.net MVC中应该怎样使用Spring.Net

    简单工厂 专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口.简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一 ...

  9. Spring MVC中的Controller是Serlvet吗?

    1. Controller不是Servlet DispatcherServler是Spring MVC中的唯一Servlet,(这点可通过查看FrameworkServlet的子类确认) Servle ...

随机推荐

  1. js计时器 + asp 计时器

    JS: <script type="text/javascript"> ; function starts() { ) { alert('已经开启了实时监控!') re ...

  2. O2O地图应用之判断用户订单地址是否在服务范围内

    O2O地图应用之判断用户订单地址是否在服务范围内 需求分析 在o2o项目中,经常要用到在用户下单时判断用户所填地址的坐标点是否在服务范围内的情况,这里参考网上的实现方式,用C#来实现,经测试后有效,特 ...

  3. Hadoop jar配置使用JMX进行远程JVM监控

    背景:  编写了一个MapReduce程序,发现该程序内存占用非常多,需要有一种方法来分析内存详细的占用情况. 可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况 ...

  4. EF 5.0 帮助类

    EF 5.0 帮助类 加入命名空间: using System; using System.Data; using System.Data.Entity; using System.Data.Enti ...

  5. wwdc2016-session707 Notifications(draft)

    Introduction to Notificationshttps://developer.apple.com/wwdc2016/707 通知这哥们说话有点不清晰啊. 远程通知本地通知 可以被操作的 ...

  6. gtest 安装

    1.下载,https://code.google.com/p/googletest/.解压,进入该目录,按REAME说明 安装:1.5之前 make install可以安装,1.6之后不可以...安装 ...

  7. volley中网络请求

    首先使用Volley类创建 RequestQueue queue = Volley.newRequestQueue(this);  Making GET Requests final String u ...

  8. 纯CSS3实现3D特效的iPhone 6动画

    iPhone 6发布不久,屌丝怎能买得起,不过作为程序员,今天看到一个用纯CSS3绘制的iPhone 6,由于CSS3特性的运用,带有点3D的动画特效,大家可以先来看看在线演示效果. 在线演示    ...

  9. [转]silverlight Datagrid 行上增加ToolTip

    有两种办法: 1. 直接在后台处理在数据绑定后 ,注册LoadingRow 事件this.DataGrid.LoadingRow += new EventHandler<DataGridRowE ...

  10. UFT\QTP 12 新特性

    UFT\QTP 12 新特性 http://blog.csdn.net/testing_is_believing/article/details/22310297