Изящные способы разделить конфигурацию от ВОЙНЫ в Tomcat

ответ kleolb02 выглядит довольно хорошим. иначе была бы комбинация липкий нижний колонтитул и взлом минимальной высоты

20
задан Asaph 12 November 2009 в 04:21
поделиться

2 ответа

Если у меня есть определенный набор компонентов, которые я хотел бы настроить, и эта конфигурация должна быть отделена от файла WAR, я обычно делаю следующее:

В applicationContext.xml :

<!-- here you have a configurer based on a *.properties file -->
<bean id="configurer" 
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file://${configDir}/configuration.properties"/>
    <property name="ignoreResourceNotFound" value="false" />
    <property name="ignoreUnresolvablePlaceholders" value="false" />
    <property name="searchSystemEnvironment" value="false" />
</bean>

<!-- this is how you can use configuration properties -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="${smtp.host}"/>
</bean>

В configuration.properties :

smtp.host=smtp.your-isp.com

Вам также необходимо запустить Tomcat с -DconfigDir = / path / to / configuration / directory

12
ответ дан 30 November 2019 в 01:23
поделиться

Если вы хотите быть полностью переносимым между веб-контейнерами, вы не можете полагаться ни на что за пределами вашего WAR-файла. В Tomcat SecurityManager позволяет вам обнаруживать физическое расположение на диске, где развернут ваш код, и затем вы можете использовать эти знания для перемещения на диске в место, где находится ваш файл конфигурации.

См., Например, Определение местоположения Java-класса, загруженного Matlab

0
ответ дан 30 November 2019 в 01:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: