java / beginner
Snippet
Teure Abfragen mit Cacheable beschleunigen
Die @Cacheable-Annotation speichert Rückgabewerte einer Methode in einem Cache (z. B. Redis, Caffeine). Bei weiteren Aufrufen mit demselben Schlüssel überspringt Spring die Methode und liefert das Ergebnis direkt aus dem Cache.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Servicepublic class ProductService {@Cacheable(value = "products", key = "#id")public Product findProductById(Long id) {simulateSlowDatabaseCall();return new Product(id, "Wireless Mouse");}private void simulateSlowDatabaseCall() {try {Thread.sleep(2000);} catch (InterruptedException e) {Thread.currentThread().interrupt();}}}
spring
Erklärung
1
@Cacheable(value = "products", key = "#id")
Speichert das zurückgegebene Produkt im Cache 'products' unter Verwendung des Parameters 'id' als Schlüssel.
2
public Product findProductById(Long id) {
Definiert die Service-Methode, deren Aufruf bei einem Cache-Treffer übersprungen wird.
3
Thread.currentThread().interrupt();
Stellt den Interrupt-Status des Threads wieder her, falls eine InterruptedException auftritt.