Java Resource Leistung
-
11-09-2019 - |
Frage
Ich bin mit einem Resource und Locale Eigenschaftswerte nachzuschlagen. Ganz einfach, sieht der Code wie folgt aus:
public static String getPropertyValue(Locale locale, String resourceName, String key) {
ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
return resource.getString(key);
}
Meine Frage ist über die Leistung. Würde ein Caching-Ansatz schneller sein oder eine bessere Umsetzung als auf dem Classpath Eigenschaftsdateien zugreifen? Mein Verständnis ist, dass Resource Leistung im Allgemeinen sehr gut.
, um die Eigenschaften-Datei (in diesem Fall) sind weniger als 30 Zeilen (d.h. ~ 30 Schlüssel / Wert-Paare).
Ich frage die Leistung, da wir einen ähnlichen Ansatz auf Hochlast-Seiten und der Lookup-on-Demand-Ansatz kostspielig erweisen könnte nutzen könnten.
Lösung
Nach dem Javadocs :
Ressourcenbündel Instanzen durch die
getBundle
Factory-Methoden erstellt werden standardmäßig zwischengespeichert und die Factory-Methoden der gleichen Ressourcenbündel Instanz mehrfach zurück, wenn es zwischengespeichert wurde.
Sie müssen also nicht Caching auf eigene Faust zu tun. Aber wenn Sie eine feinere Kontrolle über das Caching-Verhalten benötigen, können Sie die getBundle(String, ResourceBundle.Control)
Überlastung und übergeben Sie eine maßgeschneiderte Control
.