Java SpringMVC作为REST提供者,在web层使用AngularJS与JSP/Velocity/Freemarker

Java SpringMVC作为REST提供者,在web层使用AngularJS与JSP/Velocity/Freemarker,java,angularjs,jsp,spring-mvc,Java,Angularjs,Jsp,Spring Mvc,默认情况下,SpringMVC的创建者建议使用JSP或一个模板引擎(Freemarker、Velocity)来提供web层 另一方面,JavaScript框架的支持者可能会建议仅将SpringMVC用作REST/WS服务提供者,并将服务层与web层完全解耦,web层将在其中一个JS框架(例如AngularJS)中创建 与前一种解决方案相比,后一种解决方案有什么缺点吗? 其中一种方法目前被认为是最新的行业标准吗?这取决于您的要求。使用像AngularJS这样的Javascript框架,您可以在客户

默认情况下,SpringMVC的创建者建议使用JSP或一个模板引擎(Freemarker、Velocity)来提供web层

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

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

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

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


在我看来,两者之间没有革命性的区别。你应该继续做你认为合适的事情。

是的,与前者相比,后者有一个缺点,就是使用后者会使你的应用程序达到某种复杂程度,我认为你一开始并不希望这样

复杂度的例子就像你会创建一些模板,最终会创建一个不利于SEO的应用程序,所以要删除它,你需要在堆栈中加入一些其他技术。第二个将给你一些真正的范围,使你的应用程序可怕的使用SPA架构,但会在一些成本。但与此相反,第一个可能会使您的工作更容易开发,但网络带宽成本要高得多。所以对我来说,这是你的选择,适合你,要么你想让它做得容易,支付更高的费用给你的托管服务提供商,要么做一些艰苦的工作,最大限度地提高你的效率和降低你的成本


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

不要过多地考虑建议。思考您的用例需要什么。当然,在应用程序体系结构中引入一个全新的(非常大的)框架也有一些缺点(例如,大量的知识开销),当然也有一些好处(例如,在客户端执行视图逻辑的能力)。问题是你是否需要福利/是否负担得起overhead@drewmoore后一种方法的优点之一是将视图层与服务层分离,从而有一个更好的起点来使用相同的服务层创建移动应用,这难道不是真的吗?分离不是什么框架的问题(s) 你正在使用的,是关于你所使用的任何框架中的代码和设计实践的质量。在前端使用JS框架将迫使你现在将视图逻辑与模型/服务逻辑分开,但是如果你使用Spring来完成整个工作,它们可以而且应该同样分开。