@Override public void configure() { bind(DiscoveryClientConfig.class).toProvider(ConfigProvider.of(DiscoveryClientConfig.class)).in(Scopes.SINGLETON); bind(ServiceURIConverter.class).in(Scopes.SINGLETON); if (readOnly) { bind(ReadOnlyDiscoveryClient.class).to(ReadOnlyDiscoveryClientImpl.class).in(Scopes.SINGLETON); } else { bind(DiscoveryClient.class).to(DiscoveryClientImpl.class).in(Scopes.SINGLETON); bind(ReadOnlyDiscoveryClient.class).to(DiscoveryClient.class).in(Scopes.SINGLETON); bind(ServiceAnnouncer.class).asEagerSingleton(); } HttpClientModule.bindNewObserver(binder()).to(DiscoveryServiceInterceptor.class); }