“还是一些 HK2 注释或技巧?”
您可以使用 HK2 的即时作用域。只需使用@Immediate
(其行为类似于@Singleton
,因此您可以摆脱它)注释资源类,然后在ServiceLocator
. 一个例子:
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.hk2.utilities.ServiceLocatorUtilities;
...
@ApplicationPath("/rest")
public class JerseyApplication extends ResourceConfig {
@Inject
public JerseyApplication(ServiceLocator locator) {
ServiceLocatorUtilities.enableImmediateScope(locator);
packages("thepackages.to.scan");
}
}
更新
基于此相关问题,如果您需要显式实例化ResourceConfig
,如链接问题的情况,您可以创建一个Feature
并注册该功能,如本答案所示
更新 2
请查看相关问题
更新 3
看起来先前链接到的即时范围内存泄漏问题已在版本 2.22.1 中得到解决