我是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之外共享应用程序上下文。
答案 0 :(得分:1)
我假设您启动Jetty的代码类似于:
Server server = new Server(...);
server.setHandler(new WebAppContext(...));
您可以从ServletContext
获取WebAppContext
并在其上设置SpringContext:
WebAppContext wac = new WebAppContext(...);
ServletContext sc = wac.getServletContext();
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, springContext);