2

我是使用 Spring 进行依赖注入的新手,并且面临着一个看似具有挑战性的场景。

我的应用程序通过一个普通的旧套接字从遗留系统接收数据,对数据执行有趣的事情 (tm),然后使用嵌入式 Jetty 实例通过 HTML5 Web 套接字抽出真正有趣的结果 (tm)。此外,Jetty 服务器托管了一个 Jersey servlet,它为所有有趣的东西 (tm) 提供了一个 RESTful 接口。

我想使用 Spring 将共享的 DAO 和应用程序服务对象注入到遗留端和我的 Jersey 资源中。这要求在遗留组件和 Jersey 之间共享 ApplicationContext。似乎我需要创建应用程序上下文,将其连接到我的遗留组件,然后在配置嵌入式 Jetty 服务器(我目前正在以编程方式进行)时将应用程序上下文传递给 Jersey ServletContext。

不幸的是,尚不清楚如何将现有的应用程序上下文传递到 Jersey ServletContext。可以做到吗?有更好的方法吗?

我想指出,这与我在 SO 上发现的其他 Jersey + Jetty + Spring 问题不同,它们不需要在 Jersey 之外共享应用程序上下文。

4

1 回答 1

1

我假设您启动 Jetty 的代码类似于:

Server server = new Server(...);
server.setHandler(new WebAppContext(...));

您可以获取ServletContextfromWebAppContext并在其上设置 SpringContext:

WebAppContext wac = new WebAppContext(...);
ServletContext sc = wac.getServletContext();
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, springContext);
于 2012-05-09T12:56:46.363 回答