Экстернализация свойства terracottaconfig в файле ehcache.xml внутри среды Spring

Есть этот тег <terracottaConfig url="host1:9510,host2:9510,host3:9510"/> в файле ehcache.xml внутри весеннего веб-приложения. Я хочу вывести атрибут URL этого тега. Значение URL должно быть заменено свойством из внешнего файла. Будет очень полезно, если вы предложите какое-либо решение этой проблемы.

1 ответ

Решение

Вы можете поставить что-то вроде этого -<terracottaConfig url="${terracotta.config.location}" /> Однако большая загвоздка в том, что он будет загружен только из системных свойств. Это не разрешается из PropertyPlaceHolder, поскольку это не файл конфигурации Spring.

Поэтому, если вы хотите использовать внешний конфигурационный файл, вам, в основном, нужно программно установить это системное свойство, прежде чем приложение Spring начнет загружать файл ehcache.xml - один из способов - написать свой собственный ServletContextListener для загрузки ваших свойств. на основе этого и установите системное свойство, таким образом, когда ehcache.xml будет загружен, он сможет правильно определить заполнитель.


Ваш ответ помог мне решить мою проблему. Я просто хочу добавить, что вместо установки системных свойств через программу, я использую util:properties следующим образом

<bean id="sysProperties" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
       <property name="targetObject" value="#{@systemProperties}"/>
       <property name="targetMethod" value="putAll"/>
       <property name="arguments">
           <util:properties>
               <prop key="propertyname_used_in_ecache_xml">#{proerties_defined_using_property_factory['propertyname_defined_in_external_properties_file']}</prop>
           </util:properties>
       </property>
    </bean>

    <bean id="cacheManager"
        class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" depends-on="sysProperties">
        <property name="configLocation">
            <value>classpath:ehcache.xml</value>
        </property>
    </bean>
Другие вопросы по тегам