您需要从HK2 实现InjectionResolver
- ContextInjectionResolver处理
@Context
- ParamInjectionResolver处理
@PathParam
、、@QueryParam
…(通过其子类) - AutowiredInjectResolver处理
@Autowired
一旦有了这个,您需要从HK2
扩展AbstractBinder并
InjectionResolver通过它的
#configure()方法绑定您:
public class MyResolverBinder extends AbstractBinder { @Override protected void configure() { bind(MyInjectionResolver.class) .to(new TypeLiteral<InjectionResolver<MyAnnotation>>() {}) .in(Singleton.class); }}…并在您的应用程序类中(或通过feature)注册此绑定器的实例:
Feature:
public class MyFeature implements Feature { @Override public boolean configure(final FeatureContext context) { context.register(new MyResolverBinder()); return true; }}注册
MyFeature到
Application:
public class JaxRsApplication extends Application { @Override public Set<Class<?>> getClasses() { final HashSet<Class<?>> classes = new HashSet<Class<?>>(); classes.add(MyFeature.class); // Register other providers or resources. return classes; }}注册
MyResolverBinder或
Feature在
ResourceConfig
new ResourceConfig() // Register either MyFeature .register(MyFeature.class) // or MyResolverBinder .register(new MyResolverBinder()) // Register other providers or resources .packages("my.package");


