AngularJS与Spring-mvc的结合

43

我最近接触到了AngularJS。 我是一名Java Web开发人员。 我想在Spring-MVC框架中使用AngularJS。 但我需要一些基础教程来入门。

我知道AngularJS的基本知识,但不知道如何将其与Spring-MVC集成。 因为大多数情况下spring会返回部分JSP(s),我们使用jsp-include添加它们,而AngularJS大多数时候期望JSON数据。

3个回答

53

两种情况:

  1. 您的架构完全基于客户端:在这种情况下,集成非常自然。Spring MVC将您的服务公开为REST(JSON / XML),您的客户端应用程序使用AngularJS消耗您的JSON。在这里,.war应用程序(Spring MVC)必须部署在servlet容器(例如Tomcat)中,您的客户端应用程序可以部署在同一服务器上或在HTTP服务器(如Nginx或Apache)中。

  2. 您希望保留服务器端页面生成,并仅使用AngularJS进行一些DOM操作,因此您的代码必须部署在相同的.war文件中(位于WEB-INF /文件夹内)。

混合这两种方法并不总是一个好主意。您可以尝试Thymeleaf以保持服务器端页面生成,并同时具有模板化、可测试性和清晰的View代码。


感谢您的见解。就war(Spring-MVC)而言,我已准备好使用REST服务的应用程序。我的疑惑只是应该将.html页面直接放在我的视图中,还是像往常一样使用AngularJS的.jsp页面,因为最终在客户端呈现时它们都是HTML。 - Priyank Thakkar
3
如果您的应用程序完全遵循REST风格,您就不需要使用JSP。使用HTML文件即可,否则会引入复杂性。请注意您的安全和授权模型,后端生成(JSP)以及使用Spring Security可以通过Spring Security的JSP标签库轻松完成,否则您需要在客户端手动处理。这个不错的指令可以帮助您:https://github.com/witoldsz/angular-http-auth/ - Nabil
谢谢Nabil。我会尝试那个。目前我已经把我的shell作为jsp页面。所有部分都是.html文件,但我一定会查看你给出的github链接。对于HTML,我很担心安全问题。 - Priyank Thakkar
你对安全问题的担忧是正确的,不是关于可靠性,而是关于实现功能所需的工作量。Spring Security 可以用一行代码为您完成这些工作。祝好运! - Nabil
@PriyankThakkar,Spring团队有一份关于AngularJS + Spring Security的好教程,可以在https://spring.io/guides/tutorials/spring-security-and-angular-js/找到。 - Boris Mitioglov

36

谢谢你,Mite。我会查看这些项目和讨论。 - Priyank Thakkar
第一个链接非常好,谢谢。 - Saurabh

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接