我正在通过 Jersey 使用 HK2,并希望让 @Immediate 服务正常工作。在此过程中,我注意到(看起来)我的服务的所有注释都没有被注册。例如,在启动我的 ServiceLocator 并查看使用@Singleton 注释的服务的描述符之后,它仍然设置为@PerLookup。我启动应用程序处理程序的代码如下:
ApplicationHandler handler = new ApplicationHandler(resourceConfig, new AbstractBinder() { ... });
我的活页夹注册了这样的服务:
bindAsContract(ShouldHaveSingletonScope.class);
在此之后立即查看我的 ServiceLocator,我发现范围没有从类中拉出(仍然是 @PerLookup)。是否需要指定其他内容来告诉 HK2 解析类注释?这似乎是一个非常标准的用例,所以我一定遗漏了一些东西。