code: protected void configureAdapter(Destination destination) {
          String adapterId = StringUtils.hasText(this.serviceAdapter) ? this.serviceAdapter : getTargetService(this.broker).getDefaultAdapter();
          if (this.beanFactory.containsBean(adapterId)) {
              ServiceAdapter adapter = (ServiceAdapter) this.beanFactory.getBean(adapterId, ServiceAdapter.class);
              destination.setAdapter(adapter);
          } else if (destination.getAdapter() == null) {
              destination.createAdapter(adapterId);
          }
      }
docs: Configure the service adapter for the destination.
  
  <p>
  This implementation will first search the {@link BeanFactory} for a bean with a matching id and use it if found.
  Otherwise the normal <code>createAdapter</code> method on the destination will be called.
  
  <p>
  May be overridden by subclasses that wish to specify custom adapter creation logic.
  
  @param destination the destination being created