2013-08-28 49 views
1

我寫了一個運行在RabbitMQ服務器上的樣本spring amqp生成器,它使用Spring AMQP發送消息並使用這些消息來使用MessageListener。在這裏,我想將隊列和消息持久性設置爲false。你可以請任何人幫助我如何設置「持久」標誌爲false使用註釋。如何使用註釋將Spring AMQP中的隊列/消息持久性設置爲false?

下面是示例代碼

@Configuration 

公共類ProducerConfiguration {

protected final String queueName = "hello.queue"; 

@Bean 
public RabbitTemplate rabbitTemplate() { 
    RabbitTemplate template = new RabbitTemplate(connectionFactory()); 
    template.setRoutingKey(this.queueName); 
    template.setQueue(this.queueName); 
    return template; 
} 

@Bean 
public ConnectionFactory connectionFactory() { 
    CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost"); 
    connectionFactory.setUsername("guest"); 
    connectionFactory.setPassword("guest"); 
    return connectionFactory; 
} 

}

public class Producer { 

public static void main(String[] args) throws Exception { 
    new Producer().send(); 
} 

public void send() { 

    ApplicationContext context = new AnnotationConfigApplicationContext(
      ProducerConfiguration.class); 
    RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class); 
    for (int i = 1; i <= 10; i++) { 
     rabbitTemplate.convertAndSend(i); 
    } 
} 

}

由於提前。

回答

1
@Configuration 
public class Config { 

    @Bean 
    public ConnectionFactory connectionFactory() { 
     return new CachingConnectionFactory(); 
    } 

    @Bean 
    public Queue foo() { 
     return new Queue("foo", false); 
    } 

    @Bean 
    public RabbitAdmin rabbitAdmin() { 
     return new RabbitAdmin(connectionFactory()); 
    } 
} 

rabbit admin將在第一次打開連接時聲明隊列。請注意,您不能將隊列從持久更改爲不更改;先刪除它。

+0

謝謝羅素,問題已通過上述示例解決。 – Pand005

相關問題