2015-11-04 131 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測試集成測試配置文件。

隨意問你是否對這種建築感興趣。

相關問題