Java 如何在jersey 2.0中向hk2注入常量?

Java 如何在jersey 2.0中向hk2注入常量?,java,dependency-injection,jersey-2.0,hk2,Java,Dependency Injection,Jersey 2.0,Hk2,如何使用jersey中的HK2向某个类中注入常量?有了Guice,我可以上像这样的课 public class DependsOnFoo { @Inject public DependsOnFoo(@Named("FOO") String foo) { ... } ... } 我会在注入器中对其进行如下配置 bind(String.class).named("FOO").toInstance(new String("foo")) HK2的等价

如何使用jersey中的HK2向某个类中注入常量?有了Guice,我可以上像这样的课

public class DependsOnFoo {

    @Inject
    public DependsOnFoo(@Named("FOO") String foo) {
        ...
    }
    ...
}
我会在注入器中对其进行如下配置

bind(String.class).named("FOO").toInstance(new String("foo"))

HK2的等价物是什么,如果有的话?

我正在从Guice学习HK2。老实说,我对hk2的复杂性和guice的简单性仍有点困惑。我确实发现这个解决方案适合我,它与Guice builder非常相似。这似乎比必须使用
ServiceLocatorUtilities
类要简单一些

public class IOCMockRestModule extends AbstractBinder
    bind(20000).to(Integer.class).named("MAX_REQUEST_TIMEOUT");
}
以及使用注入值:

@Inject
protected CustomerResource(ICustomerProvider customerProvider, @Named("MAX_REQUEST_TIMEOUT") int maxTimeoutMillis) {

是否可以以更灵活的方式实现此功能,而不需要为每个新的命名值(如
MAX\u REQUEST\u TIMEOUT
)使用新的
bind()
?我希望在运行时可以读取命名值,并通过自定义实现(如从属性文件、环境变量等)查看命名值时,可以实现更灵活的功能?我认为hk2没有此功能,但您可以查看guice的com.google.inject.name.Names.bindProperties(Binder-Binder,properties-properties)作为创建您自己的产品的指南。我认为将此功能移植到hk2应该很简单。这很有帮助,谢谢@Chris。因为我想坚持使用HK2,而不引入其他技术,所以我最终成功地使用了一个定制的注释和注入解析器来获得我想要的行为,如这里所述