ASP.NET MVC 已進入 Beta 階段,正式版發布指日可待。網路上關於 ASP.NET MVC 的教學資源已相當豐富,本文不再贅述基礎概念,而是專注於分享一個實際案例:如何在 ASP.NET MVC 架構下整合 Spring.NET 依賴注入容器,讓 Controller 的建立交由 Spring.NET 管理。
在預設的 ASP.NET MVC 框架中,所有的 Controller 都是由系統自動透過路由機制實例化的。若要引入依賴注入(DI)模式,實現鬆耦合架構,就必須攔截 Controller 的建立過程,交給 Spring.NET 容器負責。這不僅能統一管理物件生命週期,還能方便地進行 AOP 切面程式設計、交易管理等企業級功能。
本範例使用 Spring.NET 1.2.0 版本,可從官方網站 springframework.net 下載完整套件。
在 MVC 專案中加入以下組件參考:
修改 Web.config,在 <configSections> 區段加入 Spring 設定區塊宣告:
<!-- Spring Configuration -->
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
</sectionGroup>
緊接著在 <configSections> 之後新增 Spring 內容設定,指定組態檔路徑:
<spring>
<context>
<resource uri="file://~/Spring.config"/>
</context>
</spring>
其中 file://~/Spring.config 為 Spring.NET 載入物件定義的設定檔,支援多個組態檔彈性管理。
完成上述基礎設定後,即可在 Spring.config 中定義 Controller 及其相依服務,並搭配自訂的 IControllerFactory 實作,攔截 Controller 建立流程,實現完整的 DI 整合。這為後續單元測試、模組化開發奠定堅實基礎。