giovedì 10 novembre 2011

Caricamento file di properties in Java

Visto che perdo sempre una marea di tempo a cercare su Internet il modo per recuperare i file di properties all'interno delle WebApps, ho deciso di scrivere qui il codice che fin'ora ha dato il risultato migliore.

Fin'ora nelle mie webapp mi sono trovato a dover caricare file di properties all'interno di bean o Servlet.

Caricamento all'interno di un bean

Per caricare il file di properties all'interno dei bean (ma credo che per estensione il meccanismo funzioni benissimo anche all'interno di normalissime classi) il codice è il seguente:

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("file.properties");
Properties props = new Properties();
props.load(inputStream);

Per questo caso il file di properties deve essere posizionato alla base del package in cui il bean risiede.

Caricamento all'interno di una servlet

Per caricare file di properties all'interno di una servlet viene sfruttato il ServletContext tramite questo codice:

Properties props = new Properties();
InputStream is = getServletContext().getResourceAsStream("/WEB-INF/classes/file.properties");
props.load(is);

In questo esempio il file di properties è posizionato in fase di deploy sotto la directory WEB-INF/classes della mia webapp.