我正在尝试在 Application 构造函数(从 ResourceConfig 继承的东西)中初始化我的 Jersey 应用程序中的一些组件。看起来像这样
public Application(@Context ServletContext context,
@Context ServiceLocator locator)...
当我尝试在任何时候使用定位器时,我仍然无法使用 locator.create(MyThing.class) 方法创建我在 AbstractBinder 中注册的事物的实例。
我确定它们绑定正确,因为它们通过@inject 字段注释正确注入到我的资源类中。
不同之处在于 Jersey/HK2 框架正在实例化我的资源类(正如预期的那样,因为它们在我的包扫描路径中),但我似乎无法通过代码利用 ServiceLocator。
我的最终目标是在具有@Inject 属性时注入其他非球衣类,例如。我有一个需要注入配置的数据库访问层的工作类。我想说
locator.Create(AWorker.class)
并注入。
我如何获得真正的 ServiceLocator,它将注入我已经注册/绑定到我的 Binder 的所有内容?(或者我应该使用 ServiceLocator 以外的东西吗?)