【问题标题】:Spring MVC as a REST provider with AngularJS vs JSP/Velocity/Freemarker for the web layerSpring MVC 作为 REST 提供者,带有 AngularJS 与 Web 层的 JSP/Velocity/Freemarker
【发布时间】:2014-11-17 19:19:54
【问题描述】:

默认情况下,Spring MVC 的创建者建议使用 JSP 或模板引擎之一(Freemarker、Velocity)来提供 Web 层。

另一方面,JavaScript 框架的支持者可能会建议仅将 Spring MVC 用作 REST/WS 服务提供者,并将服务层与 Web 层完全解耦,Web 层将在其中一个 JS 框架(例如 Angular JS)。

后一种解决方案与前一种相比有什么缺点吗? 目前认为其中一种方法是最新的行业标准吗?

【问题讨论】:

  • 别再考虑推荐了。想想您的用例需要什么。当然,将一个全新的(非常大的)框架引入您的应用程序架构是有缺点的(其中一个是大量的智力开销)——当然也有好处(例如,在客户端执行视图逻辑的能力)。问题是是否需要这些好处/是否能负担得起开销
  • @drewmoore 后一种方法的优点之一是视图层与服务层的解耦,因此有一个更好的起点来使用同一个服务层?
  • 解耦不是您使用什么框架的问题,而是您的代码质量和您在whatever框架中的设计实践使用。在前端使用 JS 框架会强制您现在将视图逻辑与模型/服务逻辑分开,但如果您做所有事情,它们可以而且应该同样很好地分开与春天。

标签: java angularjs jsp spring-mvc


【解决方案1】:

这取决于您的要求。使用 AngularJS 之类的 Javascript 框架,您可以在客户端获得 MVC,您需要编写 javascript 控制器,而使用 Spring MVC,您可以在服务器端获得 MVC 架构。

AngularJS 主要用于开发涉及大量 DOM 操作的单页应用程序。因此,MVC 的 VC 部分将用 javascript 编写,并且只加载一次。

在我看来,两者之间没有革命性的区别。你应该继续做你觉得舒服的事情。

【讨论】:

    【解决方案2】:

    是的,与前者相比,后者有一个缺点,只是通过使用后者,您将您的应用程序提高到某种复杂程度,我认为您一开始就不想这样做。

    复杂性示例就像您将创建一些模板并最终创建一个对 SEO 不友好的应用程序,因此要删除它,您将在您的堆栈中包含一些其他技术。第二个会给你一些真正的范围,让你的应用程序使用 SPA 架构变得很棒,但会付出一些代价。但相比之下,第一个可能使您的工作更容易开发,但网络带宽成本更高。因此,对我来说,您的选择适合您,您要么想轻松地完成它并向您的托管服务提供商支付更高的费用,要么付出一些努力,最大限度地提高效率并最大限度地降低成本。

    但是是的,当您遵循最新的行业标准时,很明显会选择第二个。

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 2013-09-27
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 2016-01-28
      • 2014-05-05
      相关资源
      最近更新 更多