如何让Spring Boot基于外部化配置配置RabbitMQ配置?

时间:2014-10-09 17:06:24

标签: java spring rabbitmq spring-boot

我正在尝试找到以应用程序启动时自动创建的方式声明队列等的方法。我知道这可以通过Java代码添加队列的创建来完成,但理想情况下,如果Spring Boot基于xml配置配置我的RabbitMQ环境会很好。到目前为止,我尝试创建一个没有运气的resources.xml文件。所以我想知道这是否可能?

有关如何进行的任何提示或某些示例如何进行此操作?

1 个答案:

答案 0 :(得分:3)

要允许Spring AMQP在应用程序启动时填充AMQP对象,您必须将它们声明为bean并使用<rabbit:>命名空间进行XML配置以简化您的生活。

有些人喜欢这样:

<rabbit:queue name="my.queue" />

<rabbit:direct-exchange name="my.exchange">
    <rabbit:bindings>
        <rabbit:binding queue="my.queue" key="my.routingKey" />
    </rabbit:bindings>
</rabbit:direct-exchange>

当您在resources.xml中拥有该配置时,您将能够import到主Boot配置:

@Configuration
@EnableAutoConfiguration
@ImportResource("classpath:com/my/proj/configs/resources.xml")
public class MyConfiguration {
}

感谢Spring Boot Autoconfiguration,它为我们生成RabbitAdmin bean,以便在启动时填充这些AMQP对象。