81,092
社区成员
发帖
与我相关
我的任务
分享
@NameBinding
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface BaseInject {}
@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);