ответ kleolb02 выглядит довольно хорошим. иначе была бы комбинация липкий нижний колонтитул и взлом минимальной высоты
Если у меня есть определенный набор компонентов, которые я хотел бы настроить, и эта конфигурация должна быть отделена от файла 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
Если вы хотите быть полностью переносимым между веб-контейнерами, вы не можете полагаться ни на что за пределами вашего WAR-файла. В Tomcat SecurityManager позволяет вам обнаруживать физическое расположение на диске, где развернут ваш код, и затем вы можете использовать эти знания для перемещения на диске в место, где находится ваш файл конфигурации.
См., Например, Определение местоположения Java-класса, загруженного Matlab