2010-12-03 37 views
1

我剛剛開始使用Spring,目前正在閱讀Spring in Action以加速。在援引春天與EJB的好處,這本書使語句:是否有可能建議重構Spring MVC應用程序以使用其他MVC框架?

「隨着春天,組件通常 實現,擴展或 使用任何Spring特有的類或接口 ,使得不需要有可能將 重用到任何地方,即使在 沒有Spring。「

我的應用程序目前正在使用Spring MVC。我可以看到上面的語句對於我的應用程序的業務邏輯是如何適用的,因爲使用依賴注入已經將我們的bean與Spring框架完全分離了。但是MVC的東西,在這種情況下是一個Web應用程序呢?我很好奇將來是否可以在我的應用程序中用另一個MVC框架替換Spring MVC。

我的問題是雙重的:
1)我應該將Web層視爲與Spring框架緊密耦合,並假設我的MVC中的更改需要創建新的Web應用程序來支持它嗎?

2)如果不是,將Web應用程序從Spring中解耦出來會涉及什麼?我已經可以猜測,在沒有Spring框架的情況下,所有註釋都需要從控制器中刪除,並且需要重構相關代碼以支持新的MVC框架。

我特別感興趣的人誰已經通過這個過程的見解。

回答

0

好問題。正如您正確地指出的那樣,MVC框架傾向於將您的代碼更緊密地與業務邏輯層結合起來。

這幾乎是不可避免的,儘管比Spring 3中的要少得多,其中註釋大量用於將請求映射到控制器,等等。方法參數和返回值與Spring API的耦合大大減少。控制者可以根據其業務邏輯表達自己。然而,爲了從Spring MVC獲得任何表現力,其API的某些用途通常會涉及到。

所以要回答你的問題,雖然從Spring API到你的控制器代碼的耦合是非常小的,但它在那裏,並且需要被刪除。然而,由於它是一個非侵入性的API,因此代碼中的設計折衷應該很少,使其更容易適應其他框架。

+0

謝謝,這是有幫助的。在深入瞭解代碼之後,我傾向於同意你的看法。對於MVC重構工作,我將需要重新註解註釋並管理一些自動佈線bean,但大多數Web層都與Spring分離。我的目標是確認重構的努力是不平凡的,我想我已經做到了。 – DrewCo 2010-12-06 21:13:19

相關問題