【发布时间】:2010-12-17 13:16:35
【问题描述】:
我有一个以标准方式加载 Spring 上下文的 Web 应用程序:
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:META-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
不幸的是,我的应用程序不是“纯”Web 应用程序,这意味着我没有真正的前端,而只有 Akka 远程参与者,它们也通过 web.xml 侦听器进行初始化。 我的 Akka 演员(标准 POJO)需要获取 Spring 上下文,所以我的问题是:我如何从没有引用 Servlet 上下文的类中获取 Spring 上下文?
基本上我不能用:
WebApplicationContextUtils.getWebApplicationContext(ctx);
...因为 Akka actor 没有对 ServletContext 的引用。
谢谢。
【问题讨论】:
-
为什么actor需要访问spring上下文?
-
我正在使用使用某些服务的 Typed Actor。 Actor 并不真正需要获取 Spring 上下文,他们只需要注入依赖项。我在 Sprink/Akka 集成方面玩了一些,但在最新的代码版本中遇到了一些问题,也许我应该进行更多调查。无论如何,我的 Actor 需要一些服务,所以目前 - 没有注入 - 我必须从 Actor 内部使用 context.getBean(..) 方法。不是最佳的,但我正在努力。