spring.Net之Ioc在MVC中的使用
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中的使用的更多相关文章
- Spring.Net是怎么在MVC中实现注入的(原理)
本文将介绍Spring.Net(不仅仅是Spring.Net,其实所有的IoC容器要向控制器中进行注入,原理都是差不多的)在MVC控制器中依赖注入的实现原理,本文并没有关于在MVC使用Spring怎么 ...
- IOC 在Mvc中的使用
IOC 在Mvc中的使用 IOC,是控制反转(Inversion of Control)的英文简写, 控制反转一般分为两种类型,依赖注入(Dependency Injection)和依赖查找(Depe ...
- 自己动手写Spring框架--IOC、MVC
对于一名Java开发人员,我相信没有人不知道 Spring 框架,而且也能够轻松就说出 Spring 的特性-- IOC.MVC.AOP.ORM(batis). 下面我想简单介绍一下我写的轻量级的 S ...
- IOC运用到MVC中
IOC可以摒弃掉类中类的紧耦合,让设计和重用更简单,将IOC加入到MVC中的实现非常简单,那么有哪几种方法?它们的实现又是什么原理呢? IOC在MVC中的注入,主要是在获取Controller对象中实 ...
- IOC 容器在 ASP.NET MVC 中的应用
IOC 容器在 ASP.NET MVC 中的应用 IOC:Inversion Of Control 翻译为控制反转,我们在面向对象软件开发过程中,一个应用程序它的底层结构可能由N种不同的构件来相互协作 ...
- ContextLoaderListener和Spring MVC中的DispatcherServlet学习
DispatcherServlet介绍 DispatcherServlet是Spring前端控制器的实现,提供Spring Web MVC的集中访问点,并且负责职责的分派,与Spring IoC容器无 ...
- Spring mvc中DispatcherServlet详解
简介 DispatcherServlet是前端控制器设计模式的实现,提供SpringWebMVC的集中访问点,而且负责职责的分派,而且与spring IOC容器无缝集成,从而可以获得Spring的优势 ...
- 在Asp.net MVC中应该怎样使用Spring.Net
简单工厂 专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口.简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一 ...
- Spring MVC中的Controller是Serlvet吗?
1. Controller不是Servlet DispatcherServler是Spring MVC中的唯一Servlet,(这点可通过查看FrameworkServlet的子类确认) Servle ...
随机推荐
- android自定义seekBar
Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子 很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如 ok,我们开始吧: 一)变换前背景 先来 ...
- Window 通过cmd查看端口占用、相应进程、杀死进程等的命令【转】
一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知 ...
- PL-SQL 存储函数和存储过程
PL-SQL 存储函数和存储过程 ORACLE 提供能够把PL/SQL 程序存储在数据库中,并能够在不论什么地方来执行它.这样就叫存储过程或函数. 过程和函数统称为PL/SQL子程序.他们是被命 ...
- 学习之路三十六:SQL知识总结 - [游标||字符串分割]
好久没有写文章了,今天把前不久项目用到的SQL知识总结一下. 一丶字符串分割 SQL内置函数中是没有Split分割函数的,所以需要自己去实现,不多说,上代码: )) RETURNS @result T ...
- 如何安装最新版本的memcached
转载自孟叔的博客: https://learndevops.cn/index.php/2016/06/10/how-to-install-the-latest-version-of-memcache ...
- hadoop的dfs工具类一个【原创】
开始没搞定插件问题,就弄了个dsf操作类,后面搞定了插件问题,这玩意也就聊胜于无了,还是丢这里算了. 首先是一个配置,ztool.hadoop.properties hadoop.home.dir=G ...
- Netty http client 编写总结
Apache http client 有两个问题,第一个是 apache http client 是阻塞式的读取 Http request, 异步读写网络数据性能更好些.第二个是当 client 到 ...
- MailMessage to EML
EML格式是微软公司在Outlook中所使用的一种遵循RFC822及其后续扩展的文件格式,并成为各类电子邮件软件的通用格式. 做个笔记,C# 邮件处理保存为eml格式: 一.网上好多这样的写法,可以在 ...
- PlayFramework 1.2.x 在Controller 中识别JSON提交
链接 http://stackoverflow.com/questions/6132892/consuming-json-in-play-framework-controller @Global pu ...
- jQuery easyui combobox级联及内容联想
1.需求:已有一个下拉框A表示地区,现新增需求,需要在A选择不同地区时,增加一个展示该地区所有城市的下拉框B, 由于城市较多,要求B能实现用户输入和模糊匹配展示功能. 2.实现: (1)首先在A下面把 ...