100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Spring.net与Asp.net Mvc结合示例《转载》

Spring.net与Asp.net Mvc结合示例《转载》

时间:2018-11-10 03:34:34

相关推荐

Spring.net与Asp.net Mvc结合示例《转载》

一、介绍

因为项目要用到Ioc框架,所以要为Ioc框架选型,优秀的Ioc框架好几款,例如:,castle,unity……当然还不止三款,还有其它的Ioc框架,castle跟unity使用上比较相近,跟前两者使用上差异较大些。资料、文档和博文方面>castle>unity。这三个都有大的强大的团队支持,我感觉做得最好,无论更新力度、文档和示例都很给力。

鉴于的功能、资料文档、博文等比较完善丰富,再加上本人对相对较熟悉一些,人员培训等都较容易,因此选用了作为项目的Ioc框架。

二。与 MvC结合的入门示例

1)依赖组件

这里需要用到以下组件:

Common.Logging.dll

Spring.Core.dll

Spring.Web.Mvc.dll

2)环境搭建

入门示例习惯都从Hello world开始,这次也不例外

首先,创建一个 mvc项目:

我们在Model文件夹里新建一个IHello接口和一个Hello实现类

IHello接口

public interface IHello

{

string SayHelloWorld();

}

Hello实现类

public class Hello : IHello

{

public string SayHelloWorld()

{

return "Hello World!";

}

}

在SayHelloWorld方法中return了一个字符串”Hello world!”。

让我们来测试它吧,在HomeController里我们写下如下代码:

HomeController类

public class HomeController : Controller

{

public IHello hello = new Hello();

public ActionResult Index()

{

ViewBag.Message = hello.SayHelloWorld();

return View();

}

public ActionResult About()

{

return View();

}

}

我们实例化了一个Hello对象,硬编码的方式,先运行一下看看效果:

上面运行一切正常,好了让我们来引入

3)引入spring组件

上面提到的的组件引入到工程里面来:

4)修改web.config添加Spring配置:

web.config

<configSections>

<sectionGroup name="spring">

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

</sectionGroup>

</configSections>

<spring>

<context>

<resource uri="~/Configs/Spring.xml"/>

</context>

</spring>

我们引用了另外的一个xml文件Spring.xml,用于配置对象和设置相关依赖。

5)移除掉具体的实现

在配置对象之前,我们先把HomeController代码改一改,移除掉具体的实现:

public class HomeController : Controller

{

public IHello Hello { get; set; }

public ActionResult Index()

{

ViewBag.Message = this.Hello.SayHelloWorld();

return View();

}

public ActionResult About()

{

return View();

}

}

6)配置对象和设置相关依赖

Spring.xml

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

<objects xmlns="">

<object id="Hello" type="SpringMvcApp.Models.Hello, SpringMvcApp"/>

<object type="SpringMvcApp.Controllers.HomeController, SpringMvcApp" singleton="false">

<property name="Hello" ref="Hello"/>

</object>

</objects>

这里需要注意一点的是,对象默认配置是单例的,Controller不是单例的,所以这里把singleton设置为false。

是否这样就已经配置完成了,让我们来测试一下。

很遗憾,并没得到我们想要的对象实例。

7)继承Spring.Web.Mvc.SpringMvcApplication类

喀,好像忘了些什么,仅仅只是配置配好了,的容器还没有接管这一切……

在这我们只需要让Global.asax文件的MvcApplication类继承于Spring.Web.Mvc.SpringMvcApplication类即可,根据需要override相关方就可以了,很简单是吧。

MvcApplication类

public class MvcApplication : Spring.Web.Mvc.SpringMvcApplication

{

protected override void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

"Default", // Route name

"{controller}/{action}/{id}", // URL with parameters

new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

);

}

}

改好后,我们再运行一下程序,这下有木有?

SpringMvcApp.zip

分类: Mvc, 好文要顶 关注我 收藏该文 xnaboy

关注 - 8

粉丝 - 0+加关注0 0 « 上一篇:编程演变

» 下一篇:Xna资源

posted @ -06-24 17:46 xnaboy Views(1428) Comments(4) Edit 收藏

Post Comment回复引用 #1楼 -09-20 16:48 | jadesun 对框架,在应用中有一个疑问,向您请教。

Global 中只要继承 SpringMvcAppliaction 后。使用LoadRunnber软件对一个Controller进行压力测试,该Controller的Action方法内,只有一行语句Response.Write("Hello World");。

从性能监视器来看,w3wp进程持续增高,但始终下不来。如果Global中不继承SpringMvcAppliaction的话,一切正常。支持(0)反对(0)

回复引用 #2楼 -01-21 15:13 | 油纸伞 请问,你这篇文章最后包的空引用错误解决了么,我的也出现这个错误了,但是我明明已经配置singleton="false"了啊支持(0)反对(0)

回复引用 #3楼 -07-25 22:38 | Auther709

这个错误是什么情况的?求解啊支持(0)反对(0)/face/416486/0726112835.png

回复引用 #4楼[楼主]2741901/8/2 13:45:35 -08-02 13:45 | xnaboy @ Auther709

估计是配置错误,注意类型type的格式如下:

<object id="Hello" type="SpringMvcApp.Models.Hello, SpringMvcApp"/>

逗号前是类的全名(包含命名空间),逗号后面是类所在的程序集名称。支持(0)反对(0)

刷新评论刷新页面返回顶部 发表评论

昵称:

评论内容:

不改了 退出 订阅评论

[Ctrl+Enter快捷键提交]

【推荐】50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库

【推荐】极光开发者服务平台,五大功能一站集齐

【推荐】腾讯云域名+云解析 限时折扣抓紧抢购

【推荐】阿里云“全民云计算”优惠升级

【推荐】一小时搭建人工智能应用,让技术更容易入门

最新IT新闻:

· Mozila Firefox即将在新版本中采用新的全新Logo

· Note8发布:各方面都趋近完美的Android机皇,就是惊喜少了点

· 京东悄然更新隐私政策 可以注销京东账号

· 苹果提醒专业用户旧版应用将无法兼容macOS High Sierra

· Win10秋季创作者更新临近结束:将更密集发布Insider版更新

» 更多新闻... 最新知识库文章:

· 做到这一点,你也可以成为优秀的程序员

· 写给立志做码农的大学生

· 架构腐化之谜

· 学会思考,而不只是编程

· 编写Shell脚本的最佳实践

» 更多知识库文章...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。