java - 为移动和 Web 构建混合 Java 应用程序的最佳实践
问题描述
我们需要为移动和 Web 构建一个混合 Java 应用程序。我们计划使用 Spring MVC 和 React Native。
您能否告诉我们最佳实践,以便我们可以尽可能多地在移动和 Web 上重复使用代码,并且它应该易于维护。
我们是否应该为 Web 和移动设备构建一个公共服务层和两个不同的控制器(使用 @Controller 和 @RestController)。之后,这两个控制器就可以调用同一个服务了。
例如,要显示我们应用程序的所有用户的信息,我们可以有一个公共服务 UserInfoService,然后我们创建两个不同的控制器 WebUseInforController(路径类似于 /web/users/info)和 MobileUserInfoController(路径类似于 /mobile/users /信息)。这两个控制器调用相同的 UserInfoService。这是一个好主意吗?
非常感谢。
解决方案
这完全取决于您的客户要求,但我可以建议您一些可能对您有帮助的方法:
我在一个企业财务应用程序上工作,在该应用程序上,我们遵循创建单个服务器端(在您的上下文中是单个控制器)的方法。该服务器端由 Web 应用程序和 android 应用程序使用。您可以创建面向服务或微服务应用程序,并公开将在 android 和 Web 应用程序中重用的不同服务。
**Web Application -----------> |Server side| <--------- Android Mobile Application**
最佳实践是您应该有一个服务器端并公开您的服务
尽管如此,还有另一个不太经济和快速的选择:
您可以使用网络渐进式应用程序。渐进式 Web 应用程序是外观和感觉都像应用程序的网站。这意味着用户无需下载移动应用程序即可访问所有信息和功能。一些大巨头将那里的应用程序转换为 WPA,例如 Ali Express、FlipKart、Twitter Lite、BookMyShow、福布斯等等。
在 Web 渐进式应用程序中,您可以遵循任何您想要的 WEB 架构。您甚至可以通过在 android 中使用该网站链接来创建一个 android 应用程序。或者该应用程序也将在移动浏览器中完美运行。
推荐阅读
- aws-lambda - AWS Lambda 未按预期发出 HTTP POST 请求
- python - 未使用的变量和 TypeError: cannot unpack non-iterable int object
- c - 枢轴根的隐式声明导致编译器错误
- tensorflow - TensorFlow Max-Min 池层
- python - 将比较公式的字符串表示形式转换回公式
- python - 使用列表值和 pandas 数据框创建字典
- javascript - 当用户尝试在 laravel 中使用 nexmo 拨打电话号码时验证用户
- linux - 无法从詹金斯发送电子邮件通知
- javascript - 检查 Typescript 中是否定义了变量?
- microservices - 微服务架构中服务总线的用例