2011-03-24 60 views
1

我需要在spring mvc應用程序的業務層中獲取servlet應用程序上下文。獲取spring servlet應用程序上下文

我試着實現ApplicationContextAware接口,自動裝配一個WebApplicationContext領域,甚至實施ServletContextAware和獲取應用程序上下文有WebApplicationContextUtils,但沒有工作的。

有沒有其他辦法可以得到它?我想避免必須傳遞來自控制器的HttpServletRequest參數以獲取業務對象中的應用程序上下文。

如果有幫助,我在WebSphere 6.1服務器上運行,我認爲它有servlet 2.4 api。

+0

'ApplicationContextAware'工作得很好。向我們展示您的Spring配置,以便我們可以看到發生了什麼問題。 – skaffman 2011-03-25 08:35:00

回答

1

執行ApplicationContextAware並注入ApplicationContext工作。所以這是要走的路。你必須找到其他問題阻止它的工作(實際上它怎麼不起作用)

例如,請確保服務類不是由您使用new運算符實例化的。

順便說一下,您不能也不應該在服務層中獲取子應用程序上下文(由dispatcher-servlet定義)。這意味着父母會了解孩子的情況 - 事實並非如此。您因此破壞了圖層邊界。想想處理這個任務的另一種方式 - 例如將上下文注入控制器(它應該在那裏工作),然後將所需的參數傳遞給服務。

+0

不工作我的意思是它注入了根應用程序上下文(在'applicationContext.xml'中定義的那個),而不是DispatcherServlet加載的Web應用程序上下文('servletname-servlet.xml'),這是我的想。 – rabusmar 2011-03-25 03:14:58

+0

@rabusmar看到更新 – Bozho 2011-03-25 12:12:42

相關問題