2014-01-28 31 views
0

我有一個騾與AMQP入站和出站端點流,這裏是一個簡化的例子:騾流量:檢查所需的性能

<flow name="foobar"> 

    <inbound-endpoint ref="amqp_inbound" /> 

    <transformer ref="some_xsl_transformer" /> 

    <outbound-endpoint ref="amqp_outbound"/> 

</flow> 

的AMQP配置是像這樣:

<amqp:endpoint name="amqp_inbound" queueName="${inbound.q.name}" connector-ref="amqpConnector" exchange-pattern="one-way" /> 

<amqp:connector 
    name="amqpConnector" 
    host="${q.host}" 
    port="${q.port}" 
    username="${q.username}" 
    password="${q.password}" 
    prefetchCount="${q.prefetchcount}" 
    ackMode="MANUAL" /> 

我想要做的是在應用程序部署時檢查所需屬性的存在。如果他們不存在,我想提供一個錯誤消息,缺少所需的屬性並正常關閉。對於常規的spring bean,我一直在實現IntializingBean並在InitializingBean#afterPropertiesSet()方法中檢查所需的屬性。

我想做一些類似的屬性只被騾流引用,它怎麼可能?即如果$ {q.username}缺失,請不要部署應用程序並拋出錯誤消息。騾子是否允許這樣的事情?

回答

1

在這種情況下,使用方法:

<context:property-placeholder 
     location="classpath:config.properties" 
     ignore-unresolvable="false" /> 

加載您的屬性,Spring會拋出異常,因此將阻止加載應用程序。

+0

感謝您的迴應David。不幸的是,這將失敗的方式是不可取的。我們決定有一個自定義的完整性檢查bean,它實現了初始化bean,我們在其中設置了所有必需的屬性。在afterPropertiesSet方法中,我們聲明屬性必須滿足的條件。 – rahilb