title: How to identify the exchange to which the message is routed to in Spring boot rabbitmq?
body: <p>I am new to Spring AMQP and was just trying to understand RabbitMQ java configuration using annotations. Here the sample code.</p>
  
  <p>Sender code - </p>
  
  <pre><code>@Component
  public class Runner implements CommandLineRunner {
      private final RabbitTemplate rabbitTemplate;
      private final Receiver receiver;
      private final ConfigurableApplicationContext context;
  
      public Runner(Receiver receiver, RabbitTemplate rabbitTemplate,
              ConfigurableApplicationContext context) {
          this.receiver = receiver;
          this.rabbitTemplate = rabbitTemplate;
          this.context = context;
      }
  
      @Override
      public void run(String... args) throws Exception {
          System.out.println("Sending message...");
          rabbitTemplate.convertAndSend(Application.queueName, "Hello from RabbitMQ!");
          receiver.getLatch().await(10000, TimeUnit.MILLISECONDS);
          context.close();
      }
  
  }
  </code></pre>
  
  <p>So, here, in convertAndSend(), only the routing key is specified. There is no exchange name given.</p>
  
  <p>The configuration file is as shown below-</p>
  
  <pre><code>@SpringBootApplication
  public class Application {
  
      final static String queueName = "spring-boot";
  
      final static String HOST = "120.27.114.229";
  
      final static String USERNAME = "root";
  
      final static String PASSWORD = "root";
  
      final static int PORT = 5672;
  
      @Bean
      Queue queue() {
          return new Queue(queueName, false);
      }
  
      @Bean
      TopicExchange exchange() {
          return new TopicExchange("spring-boot-exchange");
      }
  
      @Bean
      Binding binding(Queue queue, TopicExchange exchange) {
          return BindingBuilder.bind(queue).to(exchange).with(queueName);
      }
  
      @Bean  
      public ConnectionFactory connectionFactory() {  
            CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
            connectionFactory.setHost(HOST);
            connectionFactory.setPort(PORT);
            connectionFactory.setUsername(USERNAME);
            connectionFactory.setPassword(PASSWORD);
            connectionFactory.setVirtualHost("/");
            //����Ҫ����,��Ϣ�Ļص�
            connectionFactory.setPublisherConfirms(true); 
            return connectionFactory;
      } 
  
      @Bean
      SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
              MessageListenerAdapter listenerAdapter) {
          SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
          container.setConnectionFactory(connectionFactory);
          container.setQueueNames(queueName);
          container.setMessageListener(listenerAdapter);
          return container;
      }
  
      @Bean
      MessageListenerAdapter listenerAdapter(Receiver receiver) {
          return new MessageListenerAdapter(receiver, "receiveMessage");
      }
  
      public static void main(String[] args) throws InterruptedException {
          SpringApplication.run(Application.class, args);
      }
  
  }
  </code></pre>
  
  <p>Here, the TopicExchange bean is defined and the name is "spring-boot-exchange". So the sender sends message to this exchange?? If there are two exchanges, to which exchange does the sender send messages to ??
  Please help.</p>