ignoreUnresolvablePlaceholder не работает

Я использую ignoreUnresolvablePlaceholder в моем весеннем контексте. как ниже.

<bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:messaging.properties</value>
            </list>
        </property>
        <property name="ignoreResourceNotFound" value="false" />
        <property name="ignoreUnresolvablePlaceholders" value="true" />
    </bean>

установка события ignoreUnresolvablePlaceholder в true, не игнорируя мою инъекцию Spring Bean. я передаю amq.topic = в файл свойств для

<bean id="messageTopic1" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="${amq.topic}" />
</bean>

Но это не игнорирование этого компонента для инъекций.

ниже мой файл свойств Spring-context.xml amd.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:messaging.properties</value>
            </list>
        </property>
        <property name="ignoreResourceNotFound" value="false" />
        <property name="ignoreUnresolvablePlaceholders" value="true" />
    </bean>


    <!-- Active MQ Broker Configuration Details -->

    <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="${amq.url}" />
    </bean>

    <bean id="messageQueue1" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg value="${amq.queue}" />
    </bean>

    <bean id="messageTopic1" class="org.apache.activemq.command.ActiveMQTopic">
        <constructor-arg value="${amq.topic}" />
    </bean>

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory" />
    </bean>

    <bean id="activeMQ" class="com.isc.common.messaging.AmqUtilityHelper">
        <property name="destination" ref="messageQueue1" />
        <property name="jmsTemplate" ref="jmsTemplate" />
    </bean>

    <!-- <bean id="activeMQ1" class="com.isc.common.messaging.AmqUtilityHelper">
        <property name="destination" ref="messageTopic1" />
        <property name="jmsTemplate" ref="jmsTemplate" />
    </bean> -->

    <bean id="messageBroker" class="com.isc.common.messaging.AmqUtilityHelper">
        <property name="activeBroker" value="${active.broker}" />
    </bean>

</beans>

А ниже находится файл свойств, который я загружаю.

#AMQ/Solace properties production:
# uncomment the borker to use
active.broker=activeMQ
#active.broker=solace
#active.broker=activeMQ



#AMQ Broker Properties
amq.url=failover:(tcp://localhost:61616)??initialReconnectDelay=2000&maxReconnectAttempts=5
amq.queue=messageQueue1
amq.topic=


#Solace Broker Properties
solace.url=smf://192.168.56.101:55555
solace.userName=spring_user@Solace_Spring_VPN
solace.passWord=spring_password
solace.jndiName=JNDI/CF/spring1
solace.queue=JNDI/Q/requests
#solace.topic=JNDI/topic1

1 ответ

По умолчанию реализации ApplicationContext охотно создают и настраивают все одноэлементные компоненты как часть процесса инициализации. Как правило, это предварительное создание является желательным, потому что ошибки в конфигурации или окружающей среде обнаруживаются немедленно, в отличие от часов или даже дней спустя. Когда такое поведение нежелательно, вы можете предотвратить предварительное создание экземпляра одноэлементного компонента, пометив определение компонента как инициализированный ленивым. Инициализированный ленивый bean-компонент сообщает контейнеру IoC о создании экземпляра bean-компонента при первом запросе, а не при запуске.

Можете ли вы, пожалуйста, попытаться лениво инициализировать ваш компонент, используя приведенную ниже конструкцию.

отложенная инициализация ="истина"

   <bean id="messageTopic1" class="org.apache.activemq.command.ActiveMQTopic" 
  lazy-init="true">
            <constructor-arg value="${amq.topic}" />
    </bean>
Другие вопросы по тегам