获取spring servlet应用程序上下文

时间:2011-03-24 23:25:33

标签: java spring spring-mvc

我需要在spring mvc应用程序的业务层中获取servlet应用程序上下文。

我已尝试实施ApplicationContextAware接口,自动装配WebApplicationContext字段,甚至实施ServletContextAware并使用WebApplicationContextUtils获取应用程序上下文,但这些都不起作用。

还有其他办法吗?我想避免必须从控制器传递HttpServletRequest参数来获取业务对象中的应用程序上下文。

如果它有用,我在WebSphere 6.1服务器上运行,我认为它有servlet 2.4 api。

1 个答案:

答案 0 :(得分:1)

实施ApplicationContextAware并注入ApplicationContext工作。这就是要走的路。你必须找到其他问题阻止它工作(实际上它是如何工作的?)

例如,确保您未使用new运算符实例化服务类。

顺便说一句,您不能也不应该在服务层中获取子应用程序上下文(由dispatcher-servlet定义)。这意味着父母会知道子情境 - 而事实并非如此。因此,您打破了图层边界。想想处理这个任务的另一种方法 - 比如在控制器中注入上下文(它应该在那里工作),然后将所需的参数传递给服务。