如何在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);
...全文
133 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧