2013-02-17 70 views
3

使用繼承研究Spring MVC中使用繼承。在Spring MVC 3.1

是它有一個基本的控制器,其他控制器可以擴展一個好主意?

的基本控制器將持有通用的功能給所有controllers.For如得到一個句柄登錄用戶等

如果使用基本控制器是不是一個好主意是否有任何其他建議執行類似上面提到的內容。

回答

2

它是完全可以接受的具有基部控制器,其它控制器可以延長。當Spring引入@Controller註釋時,他們爲您使用任何您想要的類層次結構鋪平了道路。

要知道,作爲一個面向對象的設計原則,這是很好的有利於對繼承組成。作爲一個經驗法則(不是硬性規定),我會建議將您的通用控制器的代碼放到一個類,其接口可通過@Inject or @Autowired注入到你的控制器。

用於獲取句柄到登錄的用戶的另一個建議是多一點的工作,但非常漂亮,一旦你擁有了它。請參閱關於使用current user annotation on your controller method arguments的討論。這就是我在我的項目上做的,它很棒!

+0

謝謝您的輸入Jay.But如果我做了共同的代碼使用的組合物中的一類,我仍然需要注入每controller.I會看着你shared.If你想到的任何其他的想法鏈接請分享。 – souser 2013-02-17 20:03:34

+1

你必須考慮你的選擇和應用的設計原則,以你自己的情況。如果你有很多控制器,使用繼承可能更有意義。 – Jay 2013-02-18 15:10:50

+1

如果你去繼承路線的另一個想法是保持繼承的方法(S)非最終,這樣就可以在單元測試覆蓋它(比如說,而不是返回調用靜態安全方法的模擬用戶對象)。這將緩解單元測試而不使用依賴注入。 – Jay 2013-02-18 15:11:54