2011-11-19 50 views
2

我即將開始開發一個使用spring的常規和移動版本的網站。在這一點上,我需要就如何解決這個問題做出決定。我預見了兩種選擇:春天應該將常規網站和移動網站分開嗎?

  1. 在同一臺服務器上的獨立站點。爲每個網站開發一套獨立的控制器和視圖。儘可能重複使用控制器。

  2. 混合的網站。開發內容感知控制器,根據設備的類型發送到不同的視圖。控制器根據設備發送不同的視圖。

選項1似乎更實用,但我恐怕最終會有很多控制器重複。此外,我需要將該網站分爲http://something.com/http://something.com/m作爲移動版本的基礎。

選項2似乎很快就會變得難以管理,因爲常規版本的更改會對移動版本產生影響。儘管如此,它將有更多的代碼重用。

你會如何處理這個問題?

回答

3

選項2總是看起來很誘人,但根據我的經驗,結果是不切實際的。總而言之,對於任何不是微不足道的網站,全頁面和移動版本之間的頁面流變得不同,數據呈現不同的數據。它變得不僅僅是一個不同的皮膚。

我的建議是努力確定常見的業務邏輯,並將其放入通用代碼中。儘可能保持控制器儘可能薄,但通過使用桌面和移動設備特定的控制器,您可以保持它們的集中。是的,會有一些重複,但希望它可以最小化。

在webapp級別的/WEB-INF/applicationContext.xml beans文件中將通用邏輯定義爲bean。然後爲每個站點定義一個單獨的DispatcherServlet,包含特定的控制器,共享公共bean。

+1

去兩個網站的方式... – rmarimon

0

如果只是呈現方式不同,即不同的視圖,但相同的模型和相同的業務邏輯,我會建議嘗試在每個控制器的方面識別客戶端。

如果他們應該使用不同的基礎調用,我會去額外的控制器與不同的網址,但仍然在同一個servlet。