Diferencia entre revisiones de «PropertiesConfiguration»

De Dos Ideas.
Saltar a: navegación, buscar
(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
 
PropertiesConfiguration config = new PropertiesConfiguration("demo.properties");
 
 
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>

Ver también