Question

J'utilise un ResourceBundle -super pour rechercher la valeur des propriétés. Tout simplement, le code ressemble à ceci:

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

Ma question porte sur la performance. Est-ce qu'une approche de la mise en cache plus rapide ou une meilleure mise en œuvre que l'accès aux fichiers de propriété sur le chemin de classe? Je crois comprendre que la performance ResourceBundle est très bien en général.

Le fichier de propriétés (dans ce cas) est moins de 30 lignes (à savoir, ~ 30 paires clé / valeur).

Je remets en question la performance puisque nous pourrions utiliser une approche similaire sur les pages de haute charge, et l'approche recherche sur demande pourrait se révéler coûteuse.

Était-ce utile?

La solution

Selon le Javadocs :

  

instances de regroupement de ressources créées par les méthodes d'usine getBundle sont mises en cache par défaut, et les méthodes d'usine renvoient la même instance de regroupement de ressources à plusieurs reprises si elle a été mise en cache.

Alors, vous ne devriez pas avoir besoin de faire la mise en cache sur votre propre. Mais si vous avez besoin de contrôle plus fin du comportement de mise en cache, vous pouvez utiliser le la surcharge de getBundle(String, ResourceBundle.Control) et passer un sur mesure Control .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top