021. Spring.Net简单入门之三: Spring.Net和MVC的结合

1. 先复制一点文件:

打开Spring.NET\examples\Spring\Spring.Mvc4QuickStart\Spring.Mvc4QuickStart\Web.config文件, 复制如下内容到自己项目的Web.config中:

Spring.NET\examples\Spring\Spring.Mvc4QuickStart\Spring.Mvc4QuickStart\Web.config文件中要复制的内容

<sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc4"/>
    </sectionGroup>

<!------------------------------------------------------------------------------------------------->
  <spring>
    <context>
      <resource uri="file://~/Config/controllers.xml"/>
      <resource uri="file://~/Config/objects.xml"/>
    </context>
  </spring>

 将上面的内容粘贴到自己项目的Web.config中(部分代码):

<?xml version="1.0" encoding="utf-8"?>

<configuration>
  <configSections>
    <!--Entity Framework块配置-->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!--复制到这里来作为Sprign.Net的块配置-->
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc4"/>
    </sectionGroup>
  </configSections>
  <!--spring复制到这里来  作为Spring.net的容器的配置节点-->
  <spring>
    <context>
     <resource uri="file://~/Config/service.xml"/>
      <resource uri="file://~/Config/controllers.xml"/>
    </context>
  </spring>
............

 2. 开始添加引用, 添加引用的时候, 最好将Spring.NET\bin\net\4.0\release下的所有dll文件都复制到当前项目的packages\Spring.Net目录下, 其中Spring.Net需要自己建

,然后添加下图的六个引用到项目中去:

3. 修改Global.asax文件

//未引用Spring.Net之前的Global.asax文件
namespace muTian.sysAdmin.UI.Portal
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}
//修改后的文件, 主要只修改继承
namespace muTian.sysAdmin.UI.Portal
{
    public class MvcApplication : Spring.Web.Mvc.SpringMvcApplication //System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

 4. 复制Config文件夹, 到项目中; 直接复制整个文件夹(使用显示所有文件使其显示出来), 这样的话, Web.config中的配置就不用怎么改变

5. 修改controllers.xml文件如下内容:

 

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

  <!--保证type一定是类的全路径名称, 保证type=" , " 逗号后面的就是类所在的程序集的名称-->
  <object type="muTian.sysAdmin.UI.Portal.Controllers.UserInfoController, muTian.sysAdmin.UI.Portal" singleton="false" >
    <!--singleton="false" 表示每次创建对象的时候, 是否以单例模式创建, True表示是用单例模式创建, false表示不是用单例模式创建, 其中要注意的是True其实是默认值-->
    <property name="userInfoService" ref="UserInfoService" />
  </object>

  <object type="muTian.sysAdmin.UI.Portal.Controllers.OrderInfoController, muTian.sysAdmin.UI.Portal" singleton="false" >
    <property name="orderInfoService" ref="OrderInfoService" />
  </object>
 </objects>

 修改service.xml文件如下内容:

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

  <object name="userInfoService" type="muTian.SysAdmin.BLL.UserInfoService, muTian.SysAdmin.BLL" singleton="false" >
    
  </object>
  <object name="orderInfoService" type="muTian.SysAdmin.BLL.OrderInfoService, muTian.SysAdmin.BLL" singleton="false" >

  </object>
</objects>

 6. 控制器主要代码:

UserInfoController控制器:

using muTian.SysAdmin.BLL;
using muTian.SysAdmin.IBLL;
using muTian.SysAdmin.Mode;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace muTian.sysAdmin.UI.Portal.Controllers
{
    public class UserInfoController : Controller
    {
            //使用Spring.Net来进行依赖注入, 注意哦, 这里如果依赖注入不成功的话, 肯定是报错的, 因为这里仅仅对userInfoService属性进行了定义, 但是并没有做任何赋值操作,下面就直接引用了, 因为所有的复制操作全部都交由Spring.Net来注入
        public IUserInfoService userInfoService
        {
            get; set;
        }

        public ActionResult Index() //创建视图, 选择类型为UserInfo, 模型选择list
        {
            ViewData.Model = userInfoService.GetUsers(u => true).ToList();
                                //(u=>1=1)
            return View();
        }

        public ActionResult Create() //创建视图, 选择类型为Create, 模板为Create
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(UserInfo userInfo)
        {
            if (ModelState.IsValid)
            {
                userInfoService.Add(userInfo);
            }
            return RedirectToAction("Index");
        }
    }
}

 OrderInfoController控制器主要代码:

namespace muTian.sysAdmin.UI.Portal.Controllers
{
    public class OrderInfoController : Controller
    {
        // GET: OrderInfo

            public IOrderInfoService orderInfoService
        {
            get;set;
        }
        public ActionResult Index()
        {
            ViewData.Model = orderInfoService.GetUsers(u => true).ToList();
            return View();
        }
    }
}

7.预览:

 

posted on 2017-02-28 12:34  印子  阅读(215)  评论(0)    收藏  举报

导航