如何在Jersey2.x中将对象注入到@Context

yanyushu 2015-10-12 10:36:07
我们在使用neo4j2.2.0版本中,想将其中的Jersey1.x替换为Jersey2.x,这样就涉及到要对其中的Provider进行重构,现在我可以通过自定义注解的方式实现资对象的注入和使用,代码如下:
我想问的是如果想将对象注入到@Context中,代码应该如何写?
自定义注解代码:
@NameBinding
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface BaseInject {}

Provider代码:
@Singleton
public class BaseExecutorResolver implements InjectionResolver<BaseInject> {

private Database database;

@Override
public Object resolve(Injectee injectee, ServiceHandle<?> serviceHandle) {

if (Database.class == injectee.getRequiredType()) {
database = Neo4jContainer.neo4jServer.getDatabase();
return database;
}
return null;

}
@Override
public boolean isConstructorParameterIndicator() {
return false;
}

@Override
public boolean isMethodParameterIndicator() {
return true;
}
}


绑定代码:
bind(BaseExecutorResolver.class).to(new TypeLiteral<InjectionResolver<BaseInject>>() {
}).in(Singleton.class);
...全文
104 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-12 10:36
社区公告
暂无公告