Diferencia entre revisiones de «PropertiesConfiguration»
(Página creada con 'PropertiesConfiguration es una clase de Apache Commons Configuration para facilitar la lectura/escritura de archivos de configuración .properties. Esta clase permite le…') |
(→Integración con Spring) |
||
| (No se muestran 3 ediciones intermedias de 2 usuarios) | |||
| Línea 4: | Línea 4: | ||
La clase permite recargar automáticamente un archivo de propiedades cuando surjen cambios. Ejemplo: | La clase permite recargar automáticamente un archivo de propiedades cuando surjen cambios. Ejemplo: | ||
<code java5> | <code java5> | ||
| + | //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 | //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 | //a una propiedad, se veriricará si el archivo de propiedades tuve cambios. Esta | ||
| Línea 9: | Línea 12: | ||
FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy(); | FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy(); | ||
strategy.setRefreshDelay(1000); //el default es 5000 ms | strategy.setRefreshDelay(1000); //el default es 5000 ms | ||
| − | |||
| − | |||
config.setReloadingStrategy(strategy); | config.setReloadingStrategy(strategy); | ||
| Línea 17: | Línea 18: | ||
config.setDelimiterParsingDisabled(true); | config.setDelimiterParsingDisabled(true); | ||
| + | //leemos un valor... | ||
String valor = config.getString("demo.prop1"); | String valor = config.getString("demo.prop1"); | ||
| + | </code> | ||
| + | |||
| + | == Integración con Spring == | ||
| + | |||
| + | <code xml> | ||
| + | |||
| + | <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> | ||
| + | |||
</code> | </code> | ||
== Ver también == | == Ver también == | ||
* [http://commons.apache.org/configuration/ Página de Apache Commons Configuration] | * [http://commons.apache.org/configuration/ Página de Apache Commons Configuration] | ||
Revisión actual del 16:01 26 ene 2012
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>