2012-05-08 69 views
2

我是新来的依赖注入瓦特/春天,我面临一个看似具有挑战性的场景。春季泽西+码头挑战

我的应用程序通过一个普通的旧套接字接收来自传统系统的数据,对数据做有趣事物(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之外共享应用程序上下文。

回答

1

我假设你的代码开始码头是一样的东西:

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

你可以从WebAppContextServletContext并设置SpringContext它:

WebAppContext wac = new WebAppContext(...); 
ServletContext sc = wac.getServletContext(); 
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, springContext); 
+0

感谢,我给它一个射击! – HolySamosa