如何让Spring Boot根据外部配置配置RabbitMQ配置?
问题描述:
我想找到方法来声明队列等,在应用程序启动时它们会自动创建。我知道这可以通过添加通过Java代码创建队列来完成,但理想情况下,如果Spring Boot将基于xml配置配置我的RabbitMQ环境,那将会很不错。我试图创建一个没有运气的resources.xml文件。所以我想知道这是否有可能?如何让Spring Boot根据外部配置配置RabbitMQ配置?
任何提示如何进行或一些例子如何做到这一点?
答
要允许Spring AMQP在应用程序启动时填充AMQP对象,必须将它们声明为bean并使用<rabbit:>
名称空间进行XML配置以简化您的生活。
Somethis这样的:
<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
它的主引导配置:
@Configuration
@EnableAutoConfiguration
@ImportResource("classpath:com/my/proj/configs/resources.xml")
public class MyConfiguration {
}
由于春季启动自动配置,它会生成RabbitAdmin
bean,以便我们在启动时填充这些AMQP对象。
请更具体地了解您尝试设置的内容。 Spring Boot(和/或Spring Cloud连接器)将设置与代理的连接,并且附加到特定的端点通常是您使用Spring Integration进行的操作。 – chrylis 2014-10-09 17:14:03
在使用Grails完成的一个宝贵项目中,我能够在外部文件中定义队列等,如果它们不存在,那么它们将被创建而不必在代码中处理它们。 此外,交换绑定队列可以通过配置它们来完成。示例如下:http://grails-plugins.github.io/grails-rabbitmq/docs/manual/guide/configuration.html 所以我想知道这是否也可以在Spring Boot中完成,但也许的确如此添加对我而言是新的Spring Integration。 – Marco 2014-10-09 17:28:39
你能举一个你在用Grails做什么的例子吗? – chrylis 2014-10-09 17:29:52