IoC之Spring.Net在Mvc项目中的使用
IoC之Spring.Net在Mvc项目中的使用
MVC中使用Spring.net
前面学习了使用Autofac来实现控制反转,这里简单记录Spring.Net实现IoC和DI的步骤
第一步:安装如下Nuget包 (Spring.Web.Mvc)
install-package spring.core
install-package spring.web
install-package spring.web.mvc5
install-package spring.web.extensions
install-package microsoft.aspnet.webapi
第二步:配置spring.net
① 在MVC项目下添加Config文件夹,新增俩个xml:controllers.xml,services.xml,右键属性,将这俩个xml的输出目录改为总是输出
Controllers.xml内容:
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<description>An example that demonstrates simple IoC features.</description>
<!--object的name可以自定义,property中的属性name不能自定义-->
<object type="ZZDX.GZZD2.WebApp.Controllers.UserInfoController,ZZDX.GZZD2.WebApp" singleton="false">
<property name="userInfoBll" ref="UserInfoService"/> 注:userInfoBll是cotroller中的属性名
</object>
</objects>
Services.xml内容
<?xml version="1.0" encoding="utf-8" ?> <objects> <object type="ZZDX.GZZD2.Bll.UserInfoService,ZZDX.GZZD2.Bll" singleton="false" name="UserInfoService"> </object> </objects>
② 修改web.config
<configSections>
<!--spring.net 2-1 配置开始-->
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc5" />
</sectionGroup>
<!--spring.net 2-1 配置结束 -->
</configSections>
<!--spring.net 2-2 配置开始 -->
<spring>
<context>
<resource uri="file://~/Config/controllers.xml" />
<resource uri="file://~/Config/services.xml" />
</context>
</spring>
<!--spring.net 2-2 配置结束 -->
第三步:修改Global.asax.cs的父类
public class MvcApplication : Spring.Web.Mvc.SpringMvcApplication //System.Web.HttpApplication
第四步:简单测试
还是使用上一节中获取用户列表的例子,注意:需要修改一下Controller.xml和Services.xml中的节点。
在使用时每次添加一个Controller只需在Controllers.xml中添加一个object节点,为Controller注入依赖只需在该Controller节点添加一个property节点;添加一个服务时在Services.xml中添加一个object节点,用起来十分简单。
1 public class UserInfoController : Controller
2 {
3 //spring.net会自动获取一个IUserInfoService的实例
4 private IUserInfoService userInfoBll;
5 public ActionResult Index()
6 {
7 List<UserInfo> users= userInfoBll.GetUsers();
8 ViewBag.users = users;
9 return View();
10 }
11 }
显示结果如下:

补充:在普通的项目中使用Spring.net可参考博文http://blog.csdn.net/zhaobw831/article/details/78039380
漫思

浙公网安备 33010602011771号