我在我的應用程序下面的架構。Spring事務的Bean作爲Servlet的
客戶端(GWT)< --calls - > Servlet的< --calls - >服務< --calls - >道
我想使這個架構更容易更改。 例如:當我想從DAO層返回一個對象的插入ID,因爲我需要它在客戶端,我必須更新服務和Servlet層爲好。所以對於這個小改動,我必須更新所有3層(3個班級和3個接口),對6個地方進行更改。 我明白了爲什麼我需要Dao層。 我也明白爲什麼我需要的服務層。 我不明白的是爲什麼服務層也不能是一個servlet。目前,我所有的servlet都將請求轉發給服務層。
關於Java Servlet的維基百科的文章說:
Servlet的最經常使用到從HTML表單提交
1的過程或存儲數據
2提供動態內容,如的結果數據庫查詢
3管理不無狀態的HTTP協議
1和2都只是數據庫調用,這是我在做存在狀態信息我的dao層和服務層使得額外的業務邏輯已經成爲可能。 3我目前沒有使用會話。我沒有登錄,到目前爲止,我只是玩弄我的架構,但我認爲,服務層可以處理這一點。
我想知道這個架構變化的COS和優點:
優點:
- 一層少,如果發生變更,更新。
利弊
- 服務層得到絡合劑。
THX你的答案。
我也可以在服務層上使用Spring Security,因爲它是一個servlet層,或者我錯過了? – SCBoy 2012-03-27 10:17:07
Spring Security的主入口點實現了來自servlet規範的過濾器,因此它構建在servlet層上。它本身不是一個servlet層。 – 2012-03-27 10:22:27
您還可以使用Spring Security在服務層中註釋方法:http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity-single.html#ns-method-security。您可以使用AOP或使用常規代碼並在服務層中傳遞用戶對象來完成這一切。 – 2012-03-27 10:32:03