Penso che una delle cose più utili nello sviluppo di applicazioni web (e non) sia rendere il più configurabile possibile ogni operazione… testi, nomi di file, indirizzi ip, porte, username, password (magari non in chiaro)…etc etc

Una soluzione interessante offerta da Java riguarda i “RESOURCE_BUNDLE“.

In questo breve articolo voglio illustrarvi come realizzarne uno in maniera semplice semplice…

Ipotizziamo di avere un file di configurazione (config.properties) cosi definito:

Utente = username
Tabella = datiProva
NomeDB = datiDB
hostDB = 127.0.0.1
esitoOK = La tua operazione è stata completata con successo
esitoKO = Attenzione si è verificato un errore, riprova più tardi

….

Ora andiamo a definire la classe che ci permetterà di leggere da questo file di configurazione:

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class ConfigurationManager{

public static synchronized String getString(String key){
try{
return RESOURCE_BUNDLE.getString(key);
}
catch(MissingResourceException e){
return key;
}
}

private static String BUNDLE_NAME;
private static final ResourceBundle RESOURCE_BUNDLE;

static {
BUNDLE_NAME = “com.tuopackage.config“;
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
}
}

Nota: il “BUNDLE_NAME” farà riferimento al file senza estensione .properties.

A questo punto, ogni qualvolta che vi servirà utilizzare un valore parametrizzato (memorizzato nel file di configurazione) vi basterà scrivere:

String parametro = ConfigurationManager.getString(”nome parametro”);
ad esempio per estrarre il nome del database:
String nomeDatabase= ConfigurationManager.getString(”NomeDB “);