title: RabbitListener annotation queue name by ConfigurationProperties
body: <p>I have configured my rabbit properties via application.yaml and spring configurationProperties.
  Thus, when I configure exchanges, queues and bindings, I can use the getters of my properties</p>
  
  <pre><code>@Bean Binding binding(Queue queue, TopicExchange exchange) {
      return BindingBuilder.bind(queue).to(exchange).with(properties.getQueue());
  }
  
  @Bean Queue queue() {
      return new Queue(properties.getQueue(), true);
  }
  
  @Bean TopicExchange exchange() {
      return new TopicExchange(properties.getExchange());
  }
  </code></pre>
  
  <p>However, when I configure a @RabbitListener to log the messages on from the queue, I have to use the full properties name like</p>
  
  <pre><code> @RabbitListener(queues = "${some.long.path.to.the.queue.name}") 
   public void onMessage(
              final Message message, final Channel channel) throws Exception {
         log.info("receiving message: {}#{}", message, channel);
      }
  </code></pre>
  
  <p>I want to avoid this error prone hard coded String and refer to the configurationProperties bean like:</p>
  
  <pre><code>@RabbitListener(queues = "${properties.getQueue()}") 
  </code></pre>
  
  <p>I had a <a href="https://stackoverflow.com/questions/45123796/spring-eventlistener-with-external-condition">similar issue</a> once with @EventListener where using a bean reference "@bean.method()" helped, but it does not work here, the bean expression is just interpreted as queue name, which fails because a queue namde "@bean...." does not exist.</p>
  
  <p>Is it possible to use ConfigurationProperty-Beans for RabbitListener queue configuration?</p>