giovedì 10 luglio 2014

FILE PROPERTIES IN JAVA


In quasi tutti i progetti che seguo c'è la necessità di avere un file di configurazione, più o meno criptato, per contenere informazioni di base come connessione al database, path per i file di log oppure la lingua predefinita del sistema. In C# abbiamo i file di confgurazione XML, in Visual Basic 6 abbiamo i file INI e in Java abbiamo i file Properties.

I file properties sono file di testo che contengono delle righe divise in coppie chiave-valore (ad esempio caratteristica=dettaglio), di seguito propongo la classe ConfigurationManager che utilizzo personalmente per gestire questi tipi di file che spero possa essere un utile spunto per applicazioni personali.

package org.dgl.manager;

public class ConfigurationManager {

    private java.util.Properties p;

    private final String DEFAULT_PROPERTIES_FILE = "application.properties";

    public ConfigurationManager() throws Exception {
        p = new java.util.Properties();
        p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(DEFAULT_PROPERTIES_FILE));
    }

    public ConfigurationManager(String propertiesFile) throws Exception {
        p = new java.util.Properties();
        p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(propertiesFile));
    }

    public java.lang.String get(String key) {
        String toret = "";
        toret = p.getProperty(key);
        return toret;
    }
}
Utilizzando il seguente codice, istanziando un oggetto di tipo ConfigurationManager sarà sufficiente eseguire il metodo get specificando la chiave da leggere nel file di properties (Null se non presente).

Conclusione

I file di properties offrono una valida funzionalità al software, inoltre nel caso specifico del linguaggio Java essi posssono essere utilizzati sia in ambiente J2SE che J2EE(Web).

Personalmente preferisco che la configurazione di una applicazione sia presente in una tabella dedicata all'interno di un database relazionale, tuttavia è comunque necessario che alcune caratteristiche della configurazione siano accessibili in un file locale "offline". 

Nessun commento:

Posta un commento