@Override public <T> Provider<T> provider(Injector manager, Key<T> key) { Class<T> rawClass = key.rawClass(); Service service = rawClass.getAnnotation(Service.class); if (service == null) { return null; } if (key.isAnnotationPresent(ServiceImpl.class)) { return null; } String address = getManager().address(rawClass); if (address != null && ! address.isEmpty()) { T proxy = getManager().service(address).as(rawClass); return ()->proxy; } else { return null; } }