2011-03-24 59 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

相关问题