Usando un hk2 InjectionResolver personalizado para inyectar la configuración de la aplicación
Una especie de seguimiento ami pregunta anterior. Estoy tratando de inyectar datos de configuración de la aplicación usando anotaciones estándar JSR-330 y el marco HK2 incluido con jersey.
Idealmente me gustaría crear una costumbreInjectionResolver
Para elNamed
anotación, que buscará los valores deseados en unMap
oProperties
objeto que llenaré de datos leídos en otra parte. En mi primer intento, he creado unApplication
instancia como
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)
}
});
}
y luego miInjectionResolver
parece
public class ConfigurationInjectionResolver implements InjectionResolver<Named> {
@Context Application application;
@Override
public Object resolve(Injectee injectee, ServiceHandle<?> serviceHandle) {
// lookup data in application.getProperties();
}
}
Mi problema es queapplication.getProperties()
esta vacio. ¿Alguna idea de lo que está mal? Además, ¿podría vincular una instancia de mi inyector en lugar de vincular la clase? De esa manera podría construir la instancia pasando miMap
datos como un parámetro.