code: void recoverExchangeBindings(Iterable<Binding> exchangeBindings) throws Exception {
      if (exchangeBindings != null)
        synchronized (exchangeBindings) {
          for (Binding binding : exchangeBindings)
            try {
              log.info("Recovering exchange binding from {} to {} with {} via {}", binding.source,
                  binding.destination, binding.routingKey, this);
              getRecoveryChannel().exchangeBind(binding.destination, binding.source,
                  binding.routingKey, binding.arguments);
            } catch (Exception e) {
              log.error("Failed to recover exchange binding from {} to {} with {} via {}",
                  binding.source, binding.destination, binding.routingKey, this, e);
              if (throwOnRecoveryFailure() || Exceptions.isCausedByConnectionClosure(e))
                throw e;
            }
        }
    }
docs: Recover exchange bindings using the {@code channelSupplier}.