2015-11-04 55 views
3

我正在编写Java Web应用程序,并希望在前端使用AngularJS。 但我不想将路由和安全性委托给角度处理,但用弹簧处理。在我的项目文件层次结构看起来像这样:AngularJS和SpringMVC在同一个项目中

hierarchy

我写角控制器,服务等而只是一些初始化参数运用它的jsp页面上。所有jsp都由Spring控制器加载,我对该页面有一些安全规则。 Angular也从这个应用程序中使用REST API。

问题是关于这种方法的效率。事实上,我在这里有几个SPA。每当我加载一个页面,Angular从头开始初始化(大约有10页)。

我想留在这个版本的原因是:

  • 它已经设置(路由,安全)
  • 好像我不需要加载网页上的所有脚本,但只需要那些

而且我有感觉,我这样做是错误的方式... 我应该分离的弹簧和角度,用角也为路由和安全处理,不仅对DOM操作。

您认为如何?你有什么建议吗?

+0

看来你并没有使用Routing(使用Spring),DOM操作(使用jsps),那么角度的用法是什么,你可能想要从后端MVC中分离出后端MVC,并让它们分开运行并获得双方的MVC架构的好处。 – vinayakj

+0

那么我决定使用Angular进行DOM操作(比如双向绑定和对REST的AJAX查询等好处),但是现在我意识到Angular可能不仅仅是这些东西。所以我正在寻找一起使用Angular和Spring的最佳实践 –

回答

3

Angular不是另一个jQuery,它的单页应用程序框架。 您可以像在与您的后端进行通信的普通外部应用程序上一样查看SPA。因此,服务器上没有视图或prezentation层,只有REST API。

Angular应用程序应该有自己的路由,将它与Spring MVC结合起来没有任何意义。安全性主要依赖于REST,并且您可以使用弹簧安全性。

最佳做法是将Angular应用程序创建为独立的JavaScript应用程序。您可以使用角度生态系统中的许多工具,这可以让您的工作非常舒适。

在开发过程中,您有后端运行,并分别使用javascript devstack开发Angular部件。之后,你可以将这两部分打包成单场战争。

我有春天的漂亮的小例子和角度积分这里:

https://github.com/Angular-cz/java-devstack

Unluckilly自述写在捷克(美丽的语言:)但是,如果你是经验丰富的Java和Maven的,你可能会得到它来自代码,我也会尝试在这里描述它。

一个不错的模块结构和智威汤逊autentication更大的应用程序可以看到蜜蜂在这里: https://bitbucket.org/angular_cz/beerapp

他们都具有类似的结构:

的前端
  • 独立的Maven模块和独立的后端。
  • JavaScript部分使用npm作为包管理器
  • 开发人员正在使用gulp任务运行器进行javascript开发(它在模块中运行,其中gulpfile.js驻留)。
  • 有配置人缘转轮和几个单元测试
  • 应用程序使用代理上运行的应用程序/ API可以生产相同的配置)在开发过程中连接到后端
  • 构建战争时
  • ,前端模块采用前端-maven-插件,它运行一饮而尽生成任务相同的JavaScript开发人员
  • 则内置精缩资产投入资源
  • 在接下来的部分是普通Maven的方式如何把资产/静态
  • 一个更漂亮东西 - 也有集成的e2e测试集成测试配置文件。

随意问你是否对这种建筑感兴趣。

相关问题