Domanda

Sto usando un ResourceBundle e Locale di ricercare i valori delle proprietà. Molto semplicemente, il codice simile al seguente:

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

La mia domanda riguarda le prestazioni. Sarebbe un approccio caching essere più veloce o di un'implementazione migliore di accesso ai file di proprietà nel classpath? La mia comprensione è che le prestazioni ResourceBundle è molto buona in generale.

Il file delle proprietà (in questo caso) è meno di 30 righe (vale a dire, ~ 30 coppie chiave / valore).

Mi chiedo la performance dato che abbiamo potuto utilizzare un approccio simile alle pagine ad alto carico, e l'approccio di ricerca-on-demand potrebbe rivelarsi costoso.

È stato utile?

Soluzione

Secondo il Javadocs :

  

istanze pacchetto di risorse create con i metodi getBundle fabbrica sono memorizzati nella cache di default, e le modalità di fabbrica restituiscono la stessa risorsa istanza fascio più volte se è stato memorizzato nella cache.

Così si dovrebbe non c'è bisogno di fare il caching da soli. Ma se avete bisogno di un controllo più dettagliato del comportamento della cache, è possibile utilizzare il sovraccarico getBundle(String, ResourceBundle.Control) e passare un personalizzato Control .

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