PropertiesConfiguration

De Dos Ideas.

PropertiesConfiguration es una clase de Apache Commons Configuration para facilitar la lectura/escritura de archivos de configuración .properties. Esta clase permite leer muchos archivos y tratarlos como uno solo, y recargar automáticamente el archivo ante cambios.

Recarga automática de un properties ante cambios

La clase permite recargar automáticamente un archivo de propiedades cuando surjen cambios. Ejemplo:

//Creamos el PropertiesConfiguration para leer el archivo de configuration "demo.properties"
PropertiesConfiguration config = new PropertiesConfiguration("demo.properties");
 
//Esta es la estrategia de recarga. En este caso, cuando se intente acceder
//a una propiedad, se veriricará si el archivo de propiedades tuve cambios. Esta
//verificación sólo se realiza cada 1000ms
FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy();
strategy.setRefreshDelay(1000); //el default es 5000 ms
config.setReloadingStrategy(strategy);
 
//por default, esta clase permite que un properties tenga muchos valores
//separados por coma. Con esto deshabilitamos ese comportamiento.
config.setDelimiterParsingDisabled(true);
 
//leemos un valor...
String valor = config.getString("demo.prop1");

Integración con Spring

<bean id="config" class="org.apache.commons.configuration.PropertiesConfiguration">
<constructor-arg type="java.net.URL" value="classpath:demo.properties" />
<property name="reloadingStrategy" ref="reloadingStrategy"/>
<property name="delimiterParsingDisabled" value="true"/>
</bean>
 
<bean id="reloadingStrategy" class="org.apache.commons.configuration.reloading.FileChangedReloadingStrategy">
<property name="refreshDelay" value="1000"/>
</bean>

Ver también