Mit einem benutzerdefinierten hk2 InjectionResolver die Anwendungskonfiguration injizieren
Art eines Follow-up zu meine vorherige Frage. Ich versuche, Anwendungskonfigurationsdaten mithilfe von JSR-330-Standardanmerkungen und dem mit Jersey gebündelten HK2-Framework einzuspeisen.
Ideally Ich möchte ein benutzerdefiniertes @ erstellInjectionResolver
für dasNamed
Annotation, die die gewünschten Werte in einem @ sucMap
oderProperties
-Objekt, das ich mit Daten füllen werde, die an anderer Stelle gelesen wurden. In meinem ersten Versuch habe ich ein @ erstelApplication
Instanz wie
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)
}
});
}
und dann meinInjectionResolver
sieht aus wi
public class ConfigurationInjectionResolver implements InjectionResolver<Named> {
@Context Application application;
@Override
public Object resolve(Injectee injectee, ServiceHandle<?> serviceHandle) {
// lookup data in application.getProperties();
}
}
Mein Problem ist, dassapplication.getProperties()
ist leer. Irgendeine Idee, was los ist? Kann ich auch eine Instanz meines Injectors binden, anstatt die Klasse zu binden? Auf diese Weise konnte ich die Instanz konstruieren, die mein @ übergibMap
data als Parameter.