我即将开始使用 spring 开发一个具有常规版本和移动版本的网站。此时我需要决定如何处理这个问题。我预见有两种选择:
同一服务器上的独立站点。为每个站点开发一组独立的 Controller 和 View 。尝试尽可能地重用 Controller 。
混合站点。开发内容感知 Controller ,根据设备类型发送到不同的 View 。 Controller 根据设备发送到不同的 View 。
选项 1 似乎更实用,但恐怕最终会出现大量 Controller 重复。另外,我需要将该站点分成 http://something.com/和 http://something.com/m作为移动版本的基础。
选项 2 似乎很快就会变得难以管理,因为常规版本的更改将对移动版本产生影响。尽管如此,它将有更多的代码重用。
你会如何处理这个问题?
最佳答案
选项 2 看起来总是很诱人,但根据我的经验,它被证明是不切实际的。总是,对于任何不那么简单的网站,全功能版本和移动版本之间的页面流会变得不同,呈现的数据也不同。它不仅仅是一个不同的皮肤。
我的建议是努力识别常见的业务逻辑,并将其放入通用代码中。使 Controller 尽可能薄,但通过使用桌面和移动专用 Controller ,您可以让它们保持专注。是的,会有一些重复,但希望可以最小化。
将通用逻辑定义为 web 应用级 /WEB-INF/applicationContext.xml
beans 文件中的 beans。然后为每个站点定义一个单独的 DispatcherServlet,包含特定的 Controller ,共享公共(public) bean。
关于spring - Spring 常规网站和移动网站是否应该分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8198028/