2016-11-15 3 views
0

Есть ли способ обеспечить динамическое связывание во время выполнения? AbstractBinder позволяет связывать фабрику, но тип класса должен быть известен во время компиляции.Jersey 2.x динамическое связывание

что-то к эффекту:

public class MyDynamicBinder implements DynamicBinder { 
    @Override 
    public boolean canBind(Class<?> someContract) { 
     return iCanBindThis(someContract); 
    } 

    @Override 
    public Object bind(Class<?> someContract) { 
     return getMyInstance(someContract); 
    } 
} 

ответ

0

HK2 является чрезвычайно динамичным инъекции контейнера. В отличие от guice и CDI, он может добавлять сервисы к своему ServiceLocator в любое время (если у вас есть соответствующая привилегия). С ServiceLocator (который является сервисом, доступным в любом месте любой другой службы hk2), то вы можете использовать методы в ServiceLocatorUtilities, например addClasses или addOneDescriptor, чтобы добавлять любые службы, которые вам нужны в любое время. Вы также можете удалить службы в любое время, но мало кто когда-либо делает это (если вы не пишете собственный динамический контейнер)

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