Spring PropertyPlaceholderConfigurer Свойства по умолчанию не читаются - PullRequest
2 голосов
/ 12 мая 2011

Я пытаюсь встроить activemq брокер в Tomcat.Кодовая база будет развернута в разных средах.Я хочу экспортировать некоторые параметры, но хочу предоставить значения по умолчанию для этих параметров в случае, если развернутая среда не предоставляет значения для заполнителей.

Это то, что у меня есть:

<property name="properties">
    <props>
        <prop key="embed.broker.networkConnectorURI">static:(failover:(tcp://server01:61616,tcp://server02:61616))
        </prop>
        <prop key="embed.broker.transportConnectorURI">vm://localhost:61616</prop>
    </props>
</property>

<bean id="broker" class="org.apache.activemq.broker.BrokerService"
    init-method="start" destroy-method="stop">
    <property name="networkConnectorURIs">
        <list>
            <ref >${embed.broker.networkConnectorURI}</ref>
        </list>
    </property>
    <property name="transportConnectorURIs">
        <list>
            <value>${embed.broker.transportConnectorURI}</value>
        </list>
    </property>
    <property name="brokerName" value="embed-broker" />
</bean>

Когда я разверну это в среде, где отсутствуют заполнители,Tomcat выдает ошибку «Не удалось разрешить заполнитель embed.broker.networkConnectorURI».Другими словами, значения по умолчанию не собираются.

Любая помощь будет принята.

Ответы [ 2 ]

3 голосов
/ 12 мая 2011

Чтобы иметь некоторые значения по умолчанию, идите по этому пути:

<bean id="myServer" class="com.gordondickens.myapp.MyServerConfig">
<property name="serverName" value="${server.name?localhost}" />
<property name="serverPort" value="${server.port?25}" />
</bean>
2 голосов
/ 12 мая 2011

Используйте PropertyOverrideConfigurer вместо PropertyPlaceholderConfigurer. Таким образом, ваши значения по умолчанию, указанные в файле контекста, будут использоваться, если не найдены переопределяющие записи файла свойств.

...