IoC之Spring.Net在Mvc项目中的使用

前言

前面学习了使用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

猜你喜欢

转载自www.cnblogs.com/wyy1234/p/9145361.html
今日推荐