2010-06-22 29 views
0

在服務層獲取servlet上下文的最佳做法是什麼?在ServiceLayer中獲取ServletContext

+4

最好的做法是'不要這樣做' - 服務層應該不知道客戶端應用程序的實現細節和協議。 – mjn 2010-06-22 10:07:46

+0

無論您從ServletContext需要什麼,您都需要事先將其提取出來,並將* *完全傳遞給服務層。 – BalusC 2010-06-22 11:37:07

+0

謝謝,我會通過我的要求的對象作爲argumnet – Zeeshan 2010-06-22 12:06:41

回答

3

有許多選項,所有的人都錯了:

  • 放在一個ThreadLocal(即每個請求),並通過ThreadLocalServletContextHolder.get()

  • 把它作爲一個參數來得到它服務方法

它們是錯誤的,因爲服務層不應該知道它是提供數據的servlet。明天它可能會擺動。

所以正確的方法是收集servlet(或控制器)中的所有必需參數,並將它們作爲參數傳遞給服務層。一個更糟糕的選擇,但仍然沒有那麼差是得到Map的屬性,並通過它。

+0

謝謝,我會通過我的要求的對象作爲argumnet – Zeeshan 2010-06-22 11:46:37

相關問題