Мое приложение работает на Jboss 4.2.2 GA с Spring 2.5.6, Richfaces 3.1.6.SR1, JSF 1.1_02.
То, что я хочу, это иметь файл porpertie вне моего уха, который будет содержать s.th. как
- информация1 = "Joey"
- информации2 = "Диди"
- information3 = "Marky"
- [...]
Изменения в этом файле должны иметь немедленное влияние.
Я начал так:
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
[...]
PropertiesConfiguration configure = null;
{
try {
configure = new PropertiesConfiguration("myProperties.properties");
configure.setReloadingStrategy(new FileChangedReloadingStrategy());
configure.setAutoSave(true);
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
Кажется, это работает, только если myProperties.properties находится где-то в целевой директории внутри моего уха. Поэтому я изменил свой код:
File file = new File(myAppRoot + FSEP + "appserver" + FSEP + "server" + FSEP + "default"
+ FSEP + "conf" + FSEP + "myApp" + FSEP + "myProperties.properties");
configure = new PropertiesConfiguration(file);
configure.setReloadingStrategy(new FileChangedReloadingStrategy());
configure.setAutoSave(true);
Это отлично работает. Но я хочу избежать использования абсолютного пути. Я уже определил
<bean id="myPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
[...]
<property name="locations">
<list>
<value>classpath:myProperties.properties</value>
<value>classpath:myApp/myProperties.properties</value>
</list>
</property>