Ich habe javax.cache.Cache
durchgesehen, um zu verstehen, wie es verwendet wird und wie es funktioniert. Es wird gesagt,
JCache ist eine kartenähnliche Datenstruktur, die temporäre Speicherung von Anwendungsdaten.
JCache und HashMap speichert die Elemente im lokalen Heapspeicher und hat standardmäßig kein Persistenzverhalten. Durch die Implementierung von benutzerdefinierten CacheLoader
und CacheWriter
können wir Persistenz erreichen. Abgesehen davon, wann es zu verwenden?
Caches haben normalerweise mehr Verwaltungslogik als eine Map, die nichts anderes als eine mehr oder weniger einfache Datenstruktur ist.
Einige Konzepte, die JCaches implementieren kann
Einige von diesen sind allgemeinere Konzepte von JCache, einige sind spezifische Implementierungsdetails von Cache-Anbietern
Hier sind die fünf Hauptunterschiede zwischen den beiden Objekten.
Im Gegensatz zu java.util.Map, Cache:
- erlaubt keine Nullschlüssel oder Werte. Versuche, null zu verwenden, führen zu einer java.lang.NullPointerException
- bietet die Möglichkeit, Werte aus einem javax.cache.integration.CacheLoader (read-through-caching) zu lesen, wenn a Der angeforderte Wert befindet sich nicht in einem Cache
- bietet die Möglichkeit, Werte in einen javax.cache.integration.CacheWriter (Write-Through-Caching) zu schreiben, wenn a Wert wird erstellt / aktualisiert / aus einem Cache gelöscht
- bietet die Möglichkeit, Änderungen am Cache-Eintrag zu beobachten
- kann Betriebsstatistiken erfassen und messen