2011-11-19 51 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。