javascript
Spring.net与Asp.net Mvc结合示例《转载》
一、介紹
因為項目要用到Ioc框架,所以要為Ioc框架選型,優秀的Ioc框架好幾款,例如:sping.net,castle,unity……當然還不止三款,還有其它的Ioc框架,castle跟unity使用上比較相近,spring.net跟前兩者使用上差異較大些。資料、文檔和博文方面spring.net>castle>unity。這三個都有大的強大的團隊支持,我感覺spring.net做得最好,無論更新力度、文檔和示例都很給力。
鑒于spring.net的功能、資料文檔、博文等比較完善豐富,再加上本人對spring.net相對較熟悉一些,人員培訓等都較容易,因此選用了spring.net作為項目的Ioc框架。
二。Spring.net與Asp.net MvC結合的入門示例
1)依賴組件
這里需要用到Spring.net以下組件:
Common.Logging.dll
Spring.Core.dll
Spring.Web.Mvc.dll
2)環境搭建
入門示例習慣都從Hello world開始,這次也不例外
首先,創建一個Asp.net 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對象,硬編碼的方式,先運行一下看看效果:
上面運行一切正常,好了讓我們來引入spring.net
3)引入spring組件
上面提到的spring.net的組件引入到工程里面來:
?
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="http://www.springframework.net">
<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類
喀,好像忘了些什么,僅僅只是配置配好了,spring.net的容器還沒有接管這一切……
在這我們只需要讓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
分類: Asp.net Mvc,Spring.net 好文要頂 關注我 收藏該文 xnaboy關注 - 8
粉絲 - 0 +加關注 0 0 ? 上一篇:編程演變
? 下一篇:Xna資源
posted @ 2011-06-24 17:46 xnaboy Views(1428) Comments(4) Edit 收藏
Post Comment 回復引用 #1樓 2012-09-20 16:48 | jadesun 對spring.net框架,在應用中有一個疑問,向您請教。
Global 中只要繼承 SpringMvcAppliaction 后。使用LoadRunnber軟件對一個Controller進行壓力測試,該Controller的Action方法內,只有一行語句Response.Write("Hello World");。
從性能監視器來看,w3wp進程持續增高,但始終下不來。如果Global中不繼承SpringMvcAppliaction的話,一切正常。支持(0)反對(0)
回復引用 #2樓 2013-01-21 15:13 | 油紙傘 請問,你這篇文章最后包的空引用錯誤解決了么,我的也出現這個錯誤了,但是我明明已經配置singleton="false"了啊支持(0)反對(0)
回復引用 #3樓 2013-07-25 22:38 | Auther709
這個錯誤是什么情況的?求解啊支持(0)反對(0)http://pic.cnblogs.com/face/416486/20130726112835.png
回復引用 #4樓[樓主]27419012013/8/2 13:45:35 2013-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腳本的最佳實踐
? 更多知識庫文章...
轉載于:https://www.cnblogs.com/Gabriel-CC/p/7421509.html
總結
以上是生活随笔為你收集整理的Spring.net与Asp.net Mvc结合示例《转载》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P1044 栈
- 下一篇: gradle idea java ssm