多个servlet中的HK2依赖注入

时间:2017-10-11 14:57:03

标签: java dependency-injection jersey jetty hk2

我们有一个基于Jetty 9.3和Jersey 2.7的REST API服务器

依赖注入与libs捆绑在一起的HK2可以正常工作。我们通过Handler向应用ResourceConfig注册所需的服务,并具有以下内容:

handler.addServlet(new ServletHolder("main-api", new ServletContainer(resourceConfig)), MAIN_SERVLET_PATH + "/*");

然后我们想将一些HTTP端点移动到一个单独的" admin"港口。因此,我们创建了两个单独的ServerConnector s,每个端口一个,以及两个单独的Handler包装单独的ServletHolder s,映射到相关的pathSpecs,用于每个相关的路径(&#34) ; / admin"和" / api")。

问题是每个处理程序现在都创建一个单独的ServiceLocator,其中包含自己的托管服务集。因此,我们无法在admin和api端点之间共享服务 - 两个处理程序中定义的Singleton对象被创建两次。

尝试创建一个"桥梁"两个ServiceLocator之间 - 但这会导致范围资源出现问题。尝试创建第三个ServiceLocator并将其桥接到另外两个定位器 - 也不好。

任何想法如何在Jetty中的不同处理程序之间共享DI对象?或者如何实现上述目标?

1 个答案:

答案 0 :(得分:0)

感谢peeskillet,您的建议确实解决了问题

   $(window).resize(function(){
        var w = $(".persist-header").width();
        $(".floatingHeader").width(w);
    });