2017-06-13 78 views
1

我試圖用blueprint中的值初始化一些屬性。但是,只有在調用路由時才能初始化cm:屬性。但是我想在不調用路由的情況下初始化bean的創建時間。我該怎麼辦?不呼叫路由的藍圖屬性

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:config="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" 
    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> 

    <!-- define configuration properties --> 
    <cm:property-placeholder persistent-id="com.tommyqu.common" update-strategy="reload"> 
     <cm:default-properties> 
      <cm:property name="activemq.group.name" value="edpDev" /> 
      <cm:property name="event.destinationQueue" value="edp-event" /> 
     </cm:default-properties> 
    </cm:property-placeholder> 

    <bean id="eventBean" class="com.tommyqu.EventBean"> 
     <property name="queueGroupName" value="${activemq.group.name}" /> 
     <property name="eventQueueName" value="${event.destinationQueue}" /> 
    </bean> 
</blueprint> 
+0

你可以更好地解釋你的問題是什麼,它的不明確 –

+0

@Claus易卜生我試圖給Java注入屬性的價值。通過上面的代碼,這些屬性的Java輸出值將爲空。 – TommyQu

+0

@克勞斯·易卜生我已經創建了setter函數。 – TommyQu

回答

1

我覺得是不是強制性的申報途徑,但如果你設置了CamelContext物業注射纔有效。

您可以嘗試申報空駱駝背景是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:config="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" 
    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> 

    <!-- define configuration properties --> 
    <cm:property-placeholder persistent-id="com.tommyqu.common" update-strategy="reload"> 
     <cm:default-properties> 
      <cm:property name="activemq.group.name" value="edpDev" /> 
      <cm:property name="event.destinationQueue" value="edp-event" /> 
     </cm:default-properties> 
    </cm:property-placeholder> 

    <camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
    <!-- No routes declared --> 
    </camelContext> 

    <bean id="eventBean" class="com.tommyqu.EventBean"> 
     <property name="queueGroupName" value="${activemq.group.name}" /> 
     <property name="eventQueueName" value="${event.destinationQueue}" /> 
    </bean> 
</blueprint> 

在這種情況下,你並不需要一個路線,但你申報的情況下,這樣可能會發生財產更換。

+0

酷!剛剛工作。 – TommyQu