相关疑难解决方法(0)

使用自定义hk2 InjectionResolver注入应用程序配置

我上一个问题的后续行动.我正在尝试使用JSR-330标准注释和与泽西捆绑的HK2框架注入应用程序配置数据.

理想情况下,我想InjectionResolverNamed注释创建一个自定义,它将在一个MapProperties对象中查找所需的值,我将从其他地方读取的数据中填充.在我的第一次尝试中,我创建了一个Application

public class MyApplication extends ResourceConfig {
    ...
    packages(MY_PACKAGES);
    property(MY_CONFIG_PROPERTY, someValue);
    register(new AbstractBinder() {
        @Override
        protected void configure() {
            bind(ConfigurationInjectionResolver.class)
            .to(new TypeLiteral<InjectionResolver<Named>>(){})
            .in(Singleton.class)
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

然后我的InjectionResolver样子

public class ConfigurationInjectionResolver implements InjectionResolver<Named> {
    @Context Application application;

    @Override
    public Object resolve(Injectee injectee, ServiceHandle<?> serviceHandle) {
        // lookup data in application.getProperties();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题application.getProperties()是空的.知道什么是错的吗?另外,我可以绑定我的Injector实例而不是绑定类吗?这样我就可以构造将我的Map数据作为参数传递的实例.

java dependency-injection jersey-2.0 hk2

5
推荐指数
1
解决办法
3813
查看次数

标签 统计

dependency-injection ×1

hk2 ×1

java ×1

jersey-2.0 ×1