在servlet之间共享类实例

时间:2015-01-13 15:04:23

标签: java servlets dependency-injection jersey

我有一个web.xml,它定义了类org.glassfish.jersey.servlet.ServletContainer的Jersey Servlet,然后使用我自己的应用程序类进行配置,使用以下内容扩展ResourceConfig

    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.mypackage.AppResourceConfig</param-value>
    </init-param> 

在我的AppResourceConfig课程中,我正在构建并注册指标的MetricRegistryHealthCheckRegistry个实例。

现在我想添加一个度量标准的健康检查servlet,就像在https://dropwizard.github.io/metrics/3.1.0/manual/servlets/中描述的那样 - 也就是说,创建度量标准的servlet和监听器,以便为度量标准注册表提供实例。 servlet,例如:

public class MyHealthCheckServletContextListener extends HealthCheckServlet.ContextListener     {

    public static final HealthCheckRegistry HEALTH_CHECK_REGISTRY = new HealthCheckRegistry();

    @Override
    protected HealthCheckRegistry getHealthCheckRegistry() {
        return HEALTH_CHECK_REGISTRY;
    }

}

和(在web.xml中)

<listener>
    <listener-class>com.example.MyHealthCheckServletContextListener</listener-class>
</listener>

但采取这种方式意味着我有两个版本。我知道注册表被声明为公共静态,因此我可以直接访问它们,但我不希望这样做。

有没有办法将这些直接注入我自己的servlet AppResourceConfig类?

0 个答案:

没有答案