我正在编写Java Web应用程序,并希望在前端使用AngularJS。 但是我不想将路由和安全性委托给角度,而是用spring来处理它。我在项目中的文件层次结构如下:
我编写了Angular控制器,服务等。只需在jsp页面上使用一些init参数即可。所有的jsp都是由Spring控制器加载的,我对这些页面有一些安全规则。 Angular还使用此应用程序的REST API。
问题在于这种方法的效率。事实上我在这里有一些SPA。每次加载页面时,Angular都会从头开始初始化(大约有10页)。
我想留在这个版本的原因是:
但我也觉得我做错了...... 我应该将Spring和Angular分开,并将Angular用于路由和安全处理,而不仅仅是DOM操作。
你怎么看?你有什么建议吗?答案 0 :(得分:3)
Angular不是另一个jQuery,它的单页面应用程序框架。 您可以在与您的后端通信的普通外部应用程序上查看SPA。所以服务器上没有视图或prezentation层,只有REST API。
Angular应用程序应该有自己的路由,将它与spring MVC结合起来没有意义。安全性主要依赖于REST,您可以使用弹簧安全性作为ussual。
最佳做法是将Angular应用程序创建为单独的JavaScript应用程序。您可以使用角度生态系统中的许多工具,这使您的工作非常舒适。
在开发过程中,您的后端运行,并使用javascript devstack单独开发Angular部分。之后,您可以将这两个部分打包成单战。
我在这里有一个很好的Spring和Angular集成的小例子:
https://github.com/Angular-cz/java-devstack
Unluckilly自述文件是用捷克文写的(美丽的语言:)但是如果你有Java和maven的经验,你可能会从代码中获取它,我也会尝试在这里描述它。
具有良好模块结构和jwt身份验证的更大的应用程序可以在这里看到: https://bitbucket.org/angular_cz/beerapp
它们都有类似的架构:
随意询问您是否对此类架构感兴趣。