java / beginner
Snippet
Leistungsoptimierung durch @Cacheable Methoden-Caching
Springs @Cacheable-Annotation speichert den Rückgabewert einer Methode im Arbeitsspeicher. Nachfolgende Aufrufe mit derselben productId liefern direkt das zwischengespeicherte Ergebnis zurück, ohne den langsamen Datenbankaufruf erneut auszuführen, was die Antwortzeiten erheblich optimiert.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Servicepublic class ProductService {@Cacheable(value = "products", key = "#productId")public String findProductDetails(Long productId) {simulateSlowDatabaseCall();return "Product: " + productId;}private void simulateSlowDatabaseCall() {try { Thread.sleep(2000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); }}}
spring
Erklärung
1
@Cacheable(value = "products", key = "#productId")
Weist Spring an, vor dem Methodenaufruf im 'products'-Cache anhand des Schlüssels 'productId' nachzusehen.
2
return "Product: " + productId;
Gibt den berechneten Produkt-String nur dann zurück, wenn kein Eintrag im Cache existiert.