2014-09-11 2 views
1

Я конвертирую OSGi-систему в не-OSGi, и у меня есть несколько сервисов, которые раньше управлялись OSGi. Я пытаюсь использовать HK2 для внедрения сервисов в несколько классов.Понимание инфраструктуры инъекции Java HK2?

Я создал пользовательскую аннотацию для инъекций и создал для нее InjectResolver. Затем я расширил AbstractBinder и использовал метод bind, чтобы связать мою аннотацию с моим пользовательским преобразователем впрыска. Отлично.

Но теперь, как мне заставить систему использовать это связующее?

Если бы я использовал HK2 с Джерси, я бы зарегистрировал это связующее в ResoureConfig Джерси. Но это не приложение Джерси.

Как сообщить Hk2 использовать мое связующее, чтобы он знал о моей пользовательской аннотации?

Спасибо!

ответ

1

Используйте любой один из них:

https://hk2.java.net/2.3.0/apidocs/org/glassfish/hk2/utilities/ServiceLocatorUtilities.html#bind%28org.glassfish.hk2.utilities.Binder...%29

https://hk2.java.net/2.3.0/apidocs/org/glassfish/hk2/utilities/ServiceLocatorUtilities.html#bind%28org.glassfish.hk2.api.ServiceLocator,%20org.glassfish.hk2.utilities.Binder...%29

https://hk2.java.net/2.3.0/apidocs/org/glassfish/hk2/utilities/ServiceLocatorUtilities.html#bind%28java.lang.String,%20org.glassfish.hk2.utilities.Binder...%29

Есть несколько других API в ServiceLocatorUtilities разработан, чтобы сделать добавление/удаление услуг из HK2 легко. В общем, HK2 очень динамичен, поэтому есть много других способов добавить/удалить службы. база всех из них является DynamicConfigurationService:

https://hk2.java.net/2.3.0/apidocs/org/glassfish/hk2/api/DynamicConfigurationService.html

Смежные вопросы