Les sujets techniques sont-ils vraiment si futiles ?
samedi 5 avril 2014
Faire référence à des variables système dans un fichier de propriétés
Lorsqu'un fichier de propriété (xxx.properties) est lu, il peut être intéressant de faire référence à une variable d'environnement.
Par exemple, un répertoire de base contenant des fichiers :
logDir=${sys:HOME}/home
Par défaut, évidement, ce n'est pas possible.
La mise en oeuvre est très simple, comme le montre l'exemple suivant en dérivant de la classe java.util.Properties :
package org.emeric.property;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.InvalidPropertiesFormatException;
import java.util.Map.Entry;
import java.util.Properties;
/**
* Extends properties to add support ${sys:xxx} notation.
*
* @author emeric_martineau
*/
public class ExtendProperties extends Properties {
/**
* Serial number.
*/
private static final long serialVersionUID = -123874838055277825L;
/**
* Open tag to replace.
*/
private static final String OPEN_TAG = "${sys:";
/**
* Open tag length.
*/
private static final int OPEN_TAG_LEN = OPEN_TAG.length();
/**
* Close tag to replace.
*/
private static final String END_TAG = "}";
/**
* Create empry properties.
*/
public ExtendProperties() {
super();
}
/**
* Create properties.
*
* @param defaults defautl value/
*/
public ExtendProperties(final Properties defaults) {
super();
// Copy properties
for(Entry
Il serait intéressant maintenant de pouvoir référence une propriété définit dans le fichier de properties.
Ce sera le sujet d'un prochain article.
Aucun commentaire:
Enregistrer un commentaire