泽西2.x动态绑定

时间:2016-11-15 04:13:09

标签: java jersey jersey-2.0 hk2

有没有办法在运行时提供动态绑定? AbstractBinder允许您绑定工厂,但必须在编译时知道类类型。

产生效果:

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

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

1 个答案:

答案 0 :(得分:1)

hk2是一种极其动态的注射容器。与guice和CDI不同,它可以随时向其ServiceLocator添加服务(如果您有适当的权限)。使用ServiceLocator(在任何其他任何hk2服务的任何地方都可以使用该服务),您可以使用ServiceLocatorUtilities中的方法,如addClasses或addOneDescriptor,以便随时添加您需要的任何服务。您也可以随时删除服务,但很少有人这样做(除非您正在编写自己的动态容器)