spring - Spring 常规网站和移动网站是否应该分开?

标签 spring mobile

我即将开始使用 spring 开发一个具有常规版本和移动版本的网站。此时我需要决定如何处理这个问题。我预见有两种选择:

  1. 同一服务器上的独立站点。为每个站点开发一组独立的 Controller 和 View 。尝试尽可能地重用 Controller 。

  2. 混合站点。开发内容感知 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/

相关文章:

java - 使用 @SentTo 通过 Spring Boot 和 RabbitMq 发送消息

java - 在单页 Web 应用程序中的 Angular route 单击链接时如何触发或执行 http 服务?

iphone - 移动网站应该有自己的子域名吗?

javascript - 如何在移动浏览器中删除 Facebook 嵌入视频标题栏

android - 即使应用程序安装在用户的移动设备上,FCM 的 NotRegistered 响应也是如此

java - 使用 Splitter 和其他一些组件后如何保持相同的相关 ID?

当不在方法签名中时,Spring MockMVC 注入(inject) mockHttpServletRequest

java - 部署示例 spring boot 应用程序时的生命周期异常

java - 在 Android 5+ 中将应用程序设置为使用蜂窝网络而不是 WiFi

html - 使用 Angular 为移动 HTML5 开发人员提供尽可能轻量级的 UI 堆栈