• 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

  • 相关阅读:
    day 30 粘包 自定义报头
    day29 网络基础之网络协议和通信
    day28 面向对象的进阶 反射 和类的内置方法
    day 27 模块和包 面向对象的复习
    CGI,FastCGI,PHP-CGI和PHP-FPM的区别
    跨平台的移动应用开发引擎CrossApp简介
    element-ui组件中的select等的change事件中传递自定义参数
    关于setInterval和setTImeout中的this指向问题
    懒加载和预加载的区别
    vueX的五个核心属性
  • 原文地址:https://www.cnblogs.com/wyy1234/p/9145361.html
Copyright © 2020-2023  润新知