Come posso utilizzare ResourceBundle per evitare percorsi di configurazione hardcoded nelle app Java?

StackOverflow https://stackoverflow.com/questions/154728

  •  03-07-2019
  •  | 
  •  

Domanda

Vorrei eliminare le dipendenze dai percorsi hardcoded per i dati di configurazione nelle mie app Java, capisco che l'uso di ResourceBundle mi aiuterà a utilizzare il classloader per trovare risorse.

Qualcuno può dirmi come vorrei sostituire un percorso hardcoded a una risorsa (diciamo un file di dati di configurazione .properties richiesto da una classe) con un uso appropriato di ResourceBundle? Semplicemente chiaro esempio se possibile, grazie a tutti.

È stato utile?

Soluzione

Prima di Java 6, ResourceBundle in genere consentiva:

Java 6 viene fornito con ResourceBundle. Controlla la classe che apre le porte ad altre fonti di ResourceBundles, ad esempio:

  • File XML (vedi esempio 2 in Javadoc)
  • Righe database

Spero che questo aiuti.

Altri suggerimenti

Dovrai esaminare Resource.getBundle (String) . Si passa il nome completo di una risorsa sul percorso di classe da caricare come file delle proprietà.

Non è necessario un ResourceBundle. Un semplice oggetto Proprietà può fare il lavoro. Basta usare il classloader per ottenere un inputstream per il file delle proprietà e usarlo per caricare i valori. Se è necessario gestire configurazioni utente più sofisticate, utilizzare preferenze api .

Cordiali saluti

Il trucco dietro Resource.getBundle (..) è l'uso del classloader. Puoi caricare tutto ciò che è nel tuo percorso di classe accedendo tramite this.getClass (). GetClassLoader (). Resource.getBundle (..) è un aiuto pratico per usarlo nell'argomento risorsa / localizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top