对于独立的兔子应用程序,Spring“cloud”配置文件无法识别

时间:2012-11-29 17:30:43

标签: cloudfoundry

我有一个独立的spring / rabbit应用程序,其配置如下:

<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" reply-timeout="1000"/>

<rabbit:admin connection-factory="connectionFactory" />

<beans profile="cloud">
    <cloud:rabbit-connection-factory id="connectionFactory"/>
</beans>

<beans profile="default">
    <rabbit:connection-factory id="connectionFactory"/>
</beans>

我正确地将一个兔子服务绑定到我的应用程序。

当我直接将以下内容放入文件中时,它可以正常工作:

<cloud:rabbit-connection-factory id="connectionFactory"/>

在尝试使用配置文件时,连接被拒绝。关于为什么配置文件不起作用的任何想法?所有文档似乎都表明应该自动激活配置文件。

1 个答案:

答案 0 :(得分:4)

Spring自动重新配置支持仅在使用应用程序类型“Spring”推送应用程序时才有效。当作为独立应用程序(或JavaWeb,或除Spring之外的任何其他东西)推送时,则不会执行Spring自动重新配置。

如果您只想在独立应用程序中激活云配置文件,则可以将-Dspring.profiles.active="cloud"添加到将应用程序推送到CF时指定的命令行。

如果您需要执行更复杂的配置,另一个选项是使用Spring Java ConfigurationCloudFoundry Java Runtime API。在Spring @Bean类的@Configuration方法中,您可以调用isCloudFoundry()类的CloudEnvironment方法(包含在CF运行时API中)来检测应用程序是否为是否在CloudFoundry上运行。基于此,您可以适当地实例化RabbitMQ bean。